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

  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 : Envoyer WhoAmI Function et recevoir WhoAmIResponse ComplexType.

Section 2 : Fonctions non liées : FormatAddress

Opérations :

  1. Envoyez FormatAddress Function avec des paramètres pour une adresse aux États-Unis. Recevez FormatAddressResponse ComplexType avec l’adresse formatée.
  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 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.
  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 : 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 :

  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 Function pour déterminer si l’autre utilisateur a l’accès AccessRights'DeleteAccess' sur l’enregistrement de compte créé.
  4. S’ils n’ont pas DeleteAccess, utilisez GrantAccess Action 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 role EntityType associé à la division de l’appelant.
  2. 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.
  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 des instances RolePrivilege ComplexType en tant que paramètres pour AddPrivilegesRole.
  5. Envoyez AddPrivilegesRole Action avec les paramètres RolePrivilege.
  6. 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 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
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é).