Partage via


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

Note

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

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

  2. Localisez le dossier /dataverse/webapi/C#-NETx/FunctionsAndActions/.

  3. Ouvrir le fichier FunctionsAndActions.sln en utilisant Visual Studio 2022

  4. Modifiez 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.
  5. Enregistrer le fichier appsettings.json

  6. 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 : envoyez la fonction WhoAmI et recevez WhoAmIResponse ComplexType.

Section 2 : Fonctions non liées : FormatAddress

Opérations :

  1. Envoyer la fonction FormatAddress avec les paramètres d’une adresse aux États-Unis. Recevez FormatAddressResponse ComplexType avec l’adresse mise en forme.
  2. Faites de même avec les paramètres d’une adresse au Japon.

Section 3 : Fonctions non liées : InitializeFrom

Opérations :

  1. Créez un enregistrement de compte qui sera l’enregistrement d’origine.
  2. Envoyez la fonction InitializeFrom avec des paramètres référençant 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.
  3. 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 : envoyez la fonction RetrieveCurrentOrganization et recevez RetrieveCurrentOrganization ComplexType.

Section 5 : Fonctions non liées : RetrieveTotalRecordCount

Opérations : envoyez la fonction RetrieveTotalRecordCount avec les paramètres pour les tables account et contact et recevez RetrieveTotalRecordCountResponse ComplexType contenant le nombre d’enregistrements dans chaque table.

Section 6 : Fonctions liées : IsSystemAdmin

Opérations :

  1. Détectez si l’organisation a l’API personnalisée sample_IsSystemAdmin installée.
  2. Sinon, installez la solution dans IsSystemAdminFunction_1_0_0_0_managed.zip contenant l’API personnalisée.
  3. Récupérez 10 enregistrements systemuser.
  4. 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 :

  1. Créez un enregistrement de compte à partager.
  2. Récupérez un utilisateur activé autre que l’utilisateur actuel.
  3. Utilisez la fonction RetrievePrincipalAccess pour déterminer si l’autre utilisateur dispose de AccessRights'DeleteAccess' sur l’enregistrement de compte créé.
  4. S’il n’en a DeleteAccess pas, utilisez l’action GrantAccess pour partager cet accès avec l’autre utilisateur.
  5. Testez à nouveau l’accès de l’utilisateur à l’aide de RetrievePrincipalAccess pour vérifier qu’ils ont maintenant l’accès DeleteAccess.

Section 8 : Actions liées : AddPrivilegesRole

Opérations :

  1. Créez un enregistrement EntityType de rôle associé à la division de l’appelant.
  2. Récupérez l’enregistrement de rôle avec les enregistrements EntityType de privilège étendus pour afficher les privilèges inclus par défaut.
  3. Récupérez les informations sur les privilèges prvCreateAccount et prvReadAccount.
  4. Utilisez les informations récupérées sur ces privilèges pour préparer une liste d’instances RolePrivilege ComplexType à utiliser comme AddPrivilegesRole paramètres.
  5. Envoyez l’action AddPrivilegesRole avec les paramètres RolePrivilege.
  6. Récupérez à nouveau l’enregistrement de rôle avec les enregistrements EntityType de privilège étendus pour montrer que les privilèges incluent maintenant les privilèges prvCreateAccount et prvReadAccount.

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
Utiliser 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#)