Exemple de fonctions et d’actions de l’API Web (C#)
Cet exemple .NET 6.0 montre comment effectuer des opérations de données communes à l’aide de l’API Web de 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 de fonctions et d’actions de l’API Web et utilise les constructions C# courantes décrites dans Exemples de l’API Web (C#).
Conditions préalables
- 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
Clonez ou téléchargez le référentiel Exemples PowerApps.
Localisez le dossier /dataverse/webapi/C#-NETx/FunctionsAndActions/.
Ouvrir le fichier
FunctionsAndActions.sln
en utilisant Visual Studio 2022Modifiez 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 développeurs pour trouver l’URL pour votre environnement.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.Enregistrer le fichier
appsettings.json
Appuyez sur F5 pour exécuter l’exemple.
Code
Le code de cet exemple est ici : PowerApps-Samples/dataverse/webapi/C#-NETx/FunctionsAndActions/Program.cs
Montre ce qui suit
Cet exemple comprend neuf régions :
Section 1 : Fonctions non liées : WhoAmI
Opération : Envoyer WhoAmI Function et recevoir WhoAmIResponse ComplexType.
Section 2 : Fonctions non liées : FormatAddress
Opérations :
- Envoyez FormatAddress Function avec des paramètres pour une adresse aux États-Unis. Recevez FormatAddressResponse ComplexType avec l’adresse formatée.
- Faites de même avec les paramètres d’une adresse au Japon.
Section 3 : Fonctions non liées : InitializeFrom
Opérations :
- Créez un enregistrement de compte qui sera l’enregistrement d’origine.
- Envoyez InitializeFrom Function avec des paramètres faisant référence à l’enregistrement de compte créé. Recevez une réponse avec des données pour créer un enregistrement de compte avec les valeurs de l’enregistrement d’origine.
- Créer un enregistrement de compte en utilisant les données de
InitializeFromResponse
afin que le nouvel enregistrement soit associé à l’enregistrement d’origine et contienne potentiellement des données copiées à partir de l’enregistrement d’origine, selon la configuration des mappages de colonnes pour l’organisation.
Section 4 : Fonctions non liées : RetrieveCurrentOrganization
Opération : Envoyer RetrieveCurrentOrganization Function et recevoir RetrieveCurrentOrganization ComplexType.
Section 5 : Fonctions non liées : RetrieveTotalRecordCount
Opérations : Envoyer RetrieveTotalRecordCount Function avec des paramètres pour les tables account
et contact
et recevoir RetrieveTotalRecordCountResponse ComplexType contenant le nombre d’enregistrements dans chaque table.
Section 6 : Fonctions liées : IsSystemAdmin
Opérations :
- Détectez si l’organisation a l’API personnalisée
sample_IsSystemAdmin
installée. - Sinon, installez la solution dans
IsSystemAdminFunction_1_0_0_0_managed.zip
contenant l’API personnalisée. - Récupérez 10 enregistrements systemuser.
- Parcourez les enregistrements à l’aide de la fonction
sample_IsSystemAdmin
pour détecter ceux qui ont le rôle de sécurité Administrateur système.
Section 7 : Actions non liées : GrantAccess
Opérations :
- Créez un enregistrement de compte à partager.
- Récupérez un utilisateur activé autre que l’utilisateur actuel.
- Utilisez la fonction RetrievePrincipalAccess Function pour déterminer si l’autre utilisateur a l’accès AccessRights
'DeleteAccess'
sur l’enregistrement de compte créé. - S’ils n’ont pas
DeleteAccess
, utilisez GrantAccess Action pour partager cet accès avec l’autre utilisateur. - Testez à nouveau l’accès de l’utilisateur à l’aide de
RetrievePrincipalAccess
pour vérifier qu’ils ont maintenant l’accèsDeleteAccess
.
Section 8 : Actions liées : AddPrivilegesRole
Opérations :
- Créez un enregistrement role EntityType associé à la division de l’appelant.
- Récupérez l’enregistrement de rôle avec les enregistrements privilege EntityType développés pour afficher les privilèges inclus par défaut.
- Récupérez les informations sur les privilèges
prvCreateAccount
etprvReadAccount
. - Utilisez les informations récupérées sur ces privilèges pour préparer une liste des instances RolePrivilege ComplexType en tant que paramètres pour
AddPrivilegesRole
. - Envoyez AddPrivilegesRole Action avec les paramètres
RolePrivilege
. - Récupérez à nouveau l’enregistrement de rôle avec les enregistrements privilege EntityType développés pour afficher les privilèges parmi lesquels figurent désormais
prvCreateAccount
etprvReadAccount
.
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. Cette section envoie une requête $batch
de suppression de l’enregistrement.
Nettoyer
Par défaut, cet exemple supprime tous les enregistrements qui y sont créés. Si vous souhaitez afficher les enregistrements créés une fois l’exemple terminé, remplacez la variable deleteCreatedRecords
par false
et vous serez invité à décider si vous souhaitez supprimer les enregistrements.
Voir aussi
Effectuer les opérations conditionnelles à l′aide de l′API Web
Utilisation de l’API web Dataverse
Bibliothèque de classes WebAPIService (C#)
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 d’opérations de schéma de table 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é).