Ajouter une action ou une fonction Dataverse à votre application de code

Cet article explique comment découvrir et ajouter des actions et des fonctions Dataverse à une application de code Power Apps à l’aide de l’interface CLI Power Apps.

Prerequisites

  • Une application de code Power Apps initialisée avec pa app init
  • @microsoft/power-apps version 1.1.1 ou ultérieure dans votre package.json
  • Accès à l’environnement Dataverse qui contient l’opération que vous souhaitez utiliser

L’interface CLI vous invite à vous connecter si vous n’êtes pas déjà authentifié.

Étape 1 : Rechercher les opérations disponibles

Permet pa app find-dataverse-api de rechercher des opérations par nom dans l’environnement configuré pour votre application de code :

pa app find-dataverse-api --search "WhoAmI"

La sortie répertorie les opérations correspondantes et inclut le type d’opération, les paramètres, la table de liaison et le type de retour.

====================================================================================================
Dataverse Operations
====================================================================================================

  WhoAmI  (Function)
  Returns: mscrm.WhoAmIResponse

----------------------------------------------------------------------------------------------------
Total: 1 operation(s)
====================================================================================================

Cette fonction et le type de retour sont documentés ici :

Vous pouvez également rechercher des actions. Par exemple:

pa app find-dataverse-api --search "AddToQueue"
====================================================================================================
Dataverse Operations
====================================================================================================

  AddToQueue  (Action)
  Bound to: mscrm.queue
  Parameters:
    - Target: mscrm.crmbaseentity
    - SourceQueue?: mscrm.queue
    - QueueItemProperties?: mscrm.queueitem
  Returns: mscrm.AddToQueueResponse

----------------------------------------------------------------------------------------------------
Total: 1 operation(s)
====================================================================================================

Cette action, les types de paramètres et les types retournés sont documentés ici :

La recherche utilise une correspondance de sous-chaîne ne respectant pas la casse sur le nom de l’opération. Pour retourner JSON pour les scénarios de script ou d’agent de codage, incluez --json:

pa app find-dataverse-api --search "WhoAmI" --json

Étape 2 : Ajouter l’opération

Après avoir trouvé le nom de l’opération, ajoutez-le à l’application :

pa app add dataverse-api --api-name WhoAmI

Commande :

  1. Obtient la définition de l’opération à partir du point de terminaison Dataverse$metadata.
  2. Écrit le schéma d’opération dans <schemaPath>/dataverse/<ApiName>.Schema.json.
  3. Enregistre les schémas des tables Dataverse référencées par l’opération.
  4. Met à jour power.config.json.
  5. dataSourcesInfo.tsRégénère .
  6. Génère des modèles TypeScript et une classe de service sous <codeGenPath>/generated/.

Lorsque vous ajoutez l’opération, l’interface CLI retourne une confirmation :

Dataverse API 'WhoAmI' added successfully.

Étape 3 : Utiliser le service généré

La commande génère une <ApiName>Service classe pour l’opération. Après avoir ajouté WhoAmI, importez son service :

import { WhoAmIService } from './generated/services/WhoAmIService';

Appelez la méthode générée :

const result = await WhoAmIService.WhoAmI();
// result.value contains BusinessUnitId, UserId, and OrganizationId.

Pour une action liée telle que AddToQueue, le premier argument est l’ID de l’enregistrement sur lequel l’action fonctionne :

import { AddToQueueService } from './generated/services/AddToQueueService';

const result = await AddToQueueService.AddToQueue(
  queueId,
  target,
  sourceQueue,
  queueItemProperties
);

Les types de paramètres et de retour sont basés sur le schéma Dataverse :

  • Les paramètres GUID utilisent le string type.
  • Paramètres de recherche qui référencent une table Dataverse utilisent Record<string, unknown>.
  • Opérations sans utilisation Promise<IOperationResult<void>>de valeur de retour .
  • Opérations qui retournent une valeur scalaire utilisent Promise<IOperationResult<T>>.
  • Opérations qui retournent un type complexe ou une table utilisent Promise<IOperationResult<Record<string, unknown>>>.

Mettre à jour une opération

Réexécutez pa app add dataverse-api avec le même nom d’opération pour obtenir la dernière définition :

pa app add dataverse-api --api-name WhoAmI

La commande remplace le schéma d’opération, régénère dataSourcesInfo.ts, supprime les entrées de configuration en double et conserve les fichiers de schémas de table référencés existants.

Fichiers créés ou mis à jour

File Change
<schemaPath>/dataverse/<ApiName>.Schema.json Crée ou remplace le schéma d’opération.
<schemaPath>/dataverse/<TableName>.Schema.json Crée des schémas pour les tables référencées s’ils n’existent pas déjà.
<schemaPath>/appschemas/dataSourcesInfo.ts Régénère les informations de source de données.
power.config.json Ajoute la référence Dataverse et, pour une opération liée, la table de liaisons.
<codeGenPath>/generated/models/<TableName>Model.ts Génère des modèles pour les tables référencées.
<codeGenPath>/generated/services/<ApiName>Service.ts Génère la classe de service pour l’opération.

Dépannage

Aucune opération trouvée

La recherche correspond uniquement au nom de l’opération. Essayez un terme de recherche plus court ou différent. Inclure --json pour inspecter la réponse.

Les fichiers générés sont obsolètes

Réexécutez pa app add dataverse-api avec le même nom d’opération. Si vous avez renommé ou supprimé l’opération et les fichiers générés obsolètes restent, supprimez ces fichiers avant de régénérer l’opération.