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.
Ce guide vous montre comment découvrir et ajouter des opérations Dataverse (actions et fonctions) à une application de code Power Apps à l’aide des commandes CLI find-dataverse-api et add-dataverse-api.
Note
Cette fonctionnalité est disponible uniquement dans la dernière interface CLI npm (préversion), et non dans l’interface CLI classique Power Apps (pac CLI). Pour plus d’informations, consultez Démarrage rapide avec l’interface CLI npm.
Prerequisites
- Une application de code Power Apps initialisée avec
npx power-apps init -
@microsoft/power-appsversion1.1.1ou ultérieure dans votrepackage.json - Session CLI authentifiée (invite
npx power-appssi nécessaire) - Accès à l’environnement Dataverse contenant l’opération que vous souhaitez utiliser
Étape 1 : Découvrir les opérations disponibles
Permet find-dataverse-api de rechercher des opérations dans votre environnement par nom :
npx power-apps find-dataverse-api --search "WhoAmI"
La sortie répertorie les opérations correspondantes avec leur type (Action ou Fonction), les paramètres, l’entité de liaison (le cas échéant) et le type de retour :
====================================================================================================
Dataverse Operations
====================================================================================================
WhoAmI (Function)
Returns: mscrm.WhoAmIResponse
----------------------------------------------------------------------------------------------------
Total: 1 operation(s)
====================================================================================================
Vous pouvez également rechercher des actions. Par exemple, pour rechercher l’action AddToQueue :
npx power-apps 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)
====================================================================================================
Pour obtenir le JSON brut (utile pour le script et pour les agents de codage), ajoutez --json:
npx power-apps find-dataverse-api --search "WhoAmI" --json
La recherche, ne respectant pas la casse, est une correspondance de sous-chaîne sur le nom de l’opération.
Étape 2 : Ajouter l’opération à votre application
Après avoir trouvé le nom de l’opération, exécutez la commande suivante :
npx power-apps add-dataverse-api --api-name WhoAmI
# or using the short alias:
npx power-apps add-dataverse-api -n WhoAmI
Commande :
- Récupère la définition de l’opération à partir de Dataverse
$metadatade votre environnement. - Écrit un fichier de schéma à l’adresse
<schemaPath>/dataverse/WhoAmI.Schema.json. - Enregistre les fichiers de schéma pour toutes les entités Dataverse référencées par les paramètres ou le type de retour de l'opération, à moins qu'ils n'existent déjà.
- Mises à jour
power.config.json:- Ajoute
databaseReferences["default.cds"]s’il n’est pas déjà présent. - Pour les opérations liées, ajoute l’entité de liaison à
dataSourcessi elle n’est pas déjà présente.
- Ajoute
- Régénère
dataSourcesInfo.tspour inclure la nouvelle opération. - Génère un modèle typeScript et une classe de service sous
<codeGenPath>/generated/.
En cas de réussite, vous voyez :
Dataverse API 'WhoAmI' added successfully.
Hint: Run 'npx power-apps run' to test locally, or 'npx power-apps push' to deploy.
Étape 3 : Utiliser le service généré dans votre code d’application
La commande génère une classe dédiée <ApiName>Service pour l’opération. Par exemple, après avoir ajouté WhoAmI, importez WhoAmIService à partir du répertoire des services générés :
import { WhoAmIService } from './generated/services/WhoAmIService';
Le service expose une méthode statique typée dont le nom est basé sur celui de l’opération. Par exemple:
const result = await WhoAmIService.WhoAmI();
// result.value contains: { BusinessUnitId: string, UserId: string, OrganizationId: string }
Pour une action liée telle que AddToQueue, le premier argument est toujours le GUID de l’enregistrement à utiliser :
import { AddToQueueService } from './generated/services/AddToQueueService';
const result = await AddToQueueService.AddToQueue(
queueId, // string (GUID of the destination queue)
target, // Record<string, unknown> (the activity to add)
sourceQueue, // Record<string, unknown> | undefined
queueItemProperties // Record<string, unknown> | undefined
);
// result.value contains: { QueueItemId: string }
Les types de paramètres et de retour proviennent du schéma Dataverse :
- Les paramètres GUID sont typés en tant que
string. - Les paramètres de recherche qui référencent une entité Dataverse sont typés en tant que
Record<string, unknown>. - Les opérations sans valeur de retour ne produisent pas de
Promise<IOperationResult<void>>. - Les opérations qui retournent un scalaire (par exemple,
boolean,number) produisentPromise<IOperationResult<T>>avec le type TypeScript correspondant. - Opérations qui retournent un type ou une entité complexe produisent
Promise<IOperationResult<Record<string, unknown>>>.
Rerun pour effectuer la même opération à nouveau
Exécuter add-dataverse-api encore avec le même --api-name est sûr et idempotent :
- La commande remplace le fichier de schéma avec la dernière définition de Dataverse.
- Il régénère
dataSourcesInfo.ts. - Il supprime les entrées dupliquées dans
power.config.json: elle n’ajoute pas de doublons. - Il n’remplace pas les fichiers de schéma d’entité qui existent déjà.
Utilisez cette commande pour récupérer les modifications apportées à la signature d’une opération après une mise à jour dans l’environnement.
Fichiers créés ou modifiés
La add-dataverse-api commande crée ou met à jour les fichiers suivants dans votre projet :
| Fichier | Modifications apportées |
|---|---|
<schemaPath>/dataverse/<ApiName>.Schema.json |
Créé ou remplacé - schéma d’opération |
<schemaPath>/dataverse/<EntityName>.Schema.json |
Créé (ignoré s’il existe déjà) : schémas pour les entités référencées |
<schemaPath>/appschemas/dataSourcesInfo.ts |
Régénéré afin d'inclure la nouvelle opération |
power.config.json |
Mise à jour avec la default.cds référence et (si elle est liée) l'entité associée. |
<codeGenPath>/generated/models/<EntityName>Model.ts |
Modèles TypeScript générés pour les sources de données d’entité référencées |
<codeGenPath>/generated/services/<ApiName>Service.ts |
Classe de service générée (un fichier par opération) |
Opérations liées et non liées
Les opérations liées sont limitées à un enregistrement d’entité spécifique. La méthode générée prend toujours un id: string paramètre comme premier argument, qui est le GUID de l’enregistrement à utiliser.
Les opérations non liées sont à l’échelle de l’environnement et ne nécessitent pas d’ID d’enregistrement. Leurs méthodes prennent uniquement les paramètres déclarés.
Les deux types sont ajoutés avec la même commande : l’interface CLI détecte automatiquement le type d’opération.
Résolution des problèmes
« Aucune opération trouvée » : la recherche est basée sur des sous-chaînes et ne respecte pas la casse, mais correspond uniquement au nom de l’opération. Essayez un terme plus court ou différent. Permet --json de confirmer la réponse brute.
Fichiers générés obsolètes : si vous avez renommé ou supprimé une opération et que les anciens fichiers générés restent, supprimez-les manuellement et réexécutez-les add-dataverse-api pour régénérer.
pac code add-data-source ignore l’action ou la fonction : les fichiers de schéma générés par add-dataverse-api utilisent un type Microsoft.PowerApps/dataverseOperation qui n’est pas reconnu par l’interface CLI PAC. Si des fichiers de schéma d’opération sont présents dans le dossier de schéma Dataverse, pac code add-data-source ignorez-les avec :
Skipping unsupported Dataverse operation schema '...AddRecurrence.Schema.json':
Ce comportement signifie que l'interface CLI PAC ne prend pas en charge le type de schéma Microsoft.PowerApps/dataverseOperation. Il ignore donc ces fichiers au lieu d'échouer.
L’interface CLI PAC prend toujours en charge les autres fichiers de schéma qui représentent des sources de données d’entité Dataverse ou des connecteurs, et vous pouvez les ajouter à l’aide de pac code add-data-source.
Articles connexes
Utiliser des actions de l'API Web
Utiliser des fonctions API Web