Note
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de changer d’annuaire.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de changer d’annuaire.
Étant donné que les organisations s’appuient de plus en plus sur Power Platform pour créer des applications évolutives pilotées par les données, le choix de la bonne approche pour l’implémentation de la logique métier devient critique. Cette architecture de référence présente deux options ( fonctions Power Fx et API personnalisées Dataverse) pour optimiser les performances et la maintenance dans les applications canevas Power Apps.
Scénario
Par défaut, lorsqu’une application interroge des données ou effectue plusieurs modifications, elle envoie des requêtes réseau HTTP individuelles à Dataverse. Dataverse retourne des données à l’application et la logique de l’application la traite.
Ce modèle d’implémentation entraîne des temps d’attente, en particulier lorsque l’application envoie plusieurs requêtes, comme dans une fonction ForAll. Le temps d’attente a un impact négatif sur les performances et l’expérience utilisateur. Par exemple, si l’application récupère et transforme des données plusieurs fois dans une boucle ForAll, le temps d’attente global peut devenir important, ce qui entraîne une expérience utilisateur lente et inefficace.
Pour optimiser l’interaction des données, déplacez les opérations de logique et de récupération des données de l’application canevas vers Dataverse à l’aide d’API personnalisées Dataverse ou de fonctions Power Fx. Les opérations de modification des données se terminent dans une transaction, ce qui garantit la cohérence des données si une erreur se produit.
Conseil / Astuce
Cet article fournit un exemple de scénario et un exemple d’architecture généralisé pour illustrer comment les applications canevas qui utilisent Dataverse peuvent déplacer une logique métier complexe vers des API personnalisées Dataverse et une fonction Power Fx pour améliorer les performances. Vous pouvez modifier l’exemple d’architecture pour de nombreux scénarios et industries différents.
Diagramme d’architecture
Dans ce diagramme, les fonctions Power Fx sont utilisées pour déplacer la logique métier complexe de l’application canevas vers Dataverse. Vous pouvez également utiliser une API personnalisée Dataverse pour obtenir le même résultat. Reportez-vous aux recommandations pour déterminer quelle option utiliser.
Flux de travail
L’application canevas Power Apps utilise Dataverse pour gérer l’allocation des ressources. L’application utilise une fonction Power Fx (une API personnalisée Dataverse remplit la même fonction) pour les opérations de données lourdes au lieu d’utiliser directement des fonctionnalités d’accès intégrées. L’application utilise toujours des fonctionnalités Dataverse intégrées pour les opérations et tâches de données de volume inférieur qui ne nécessitent pas de prise en charge transactionnelle.
La fonction Power Fx (avec l’API personnalisée Dataverse) est configurée pour transmettre les paramètres d’entrée de l’application appelante et recevoir le résultat (paramètres de réponse) de la fonction (ou l’API) via des paramètres de sortie définis. Pour:
Fonction Power Fx (préversion) : Implémentez la logique dans Power Apps Studio. En utilisant des fonctions Power Fx, les fabricants peuvent construire une logique complexe avec peu ou pas d’expertise en codage. Pour en savoir plus sur les fonctions Power Fx.
API personnalisée Dataverse : Implémentez la logique en créant un plug-in Dataverse .NET. Les plug-ins .NET personnalisés nécessitent davantage de connaissances en codage, mais offrent un contrôle et une extensibilité plus importants. En savoir plus sur les API personnalisées Dataverse.
Détails du cas d’usage
Power Apps permet aux organisations de créer des expériences utilisateur personnalisées et de centraliser la logique métier. À l’aide de Power Apps, vous pouvez obtenir une architecture de données plus efficace et réduire la charge de travail côté client.
Dans l’exemple suivant, l’application canevas Power Apps aide les fabricants à allouer efficacement des ressources aux équipes et aux tâches. Vous pouvez appliquer ce modèle d’architecture à des scénarios similaires où l’application canevas inclut des opérations de données et nécessite :
- Plusieurs boucles dans l'application canevas, que vous ne pouvez pas réaliser à l'aide de la fonction Concurrent.
- Calculs intensifs pour plusieurs transformations de données.
- Durée d’exécution cohérente, indépendamment du nombre d’éléments d’une boucle ou de la connexion Internet de l’utilisateur.
- Cohérence des données entre plusieurs opérations de modification de données.
Pour allouer des ressources, un créateur doit spécifier les emplacements, les tâches, les sous-tâches et d’autres métadonnées associées de l’allocation. Dans l’application canevas, l’écran « Vue d’ensemble des ressources » affiche plusieurs niveaux de données corrélées, comme :
- Ressources
- Emplacement
- Tâches
- Sous-tâches
- Approval
- Sous-tâches
- Tâches
- Emplacement
Pour atteindre cet objectif, vous pouvez implémenter la logique d’application à l’aide de Power Fx comme suit :
ForAll(Resources,
//Transformations
ForAll(Location,
//Transformations...
ForAll(Tasks,
//Transformations ...
)
)
)
Cette logique génère plusieurs appels HTTP à Dataverse lors de l’exécution de l’application. Bien que la meilleure pratique consiste à consolider des données dans des vues Dataverse ou à utiliser des fonctions simultanées ou d’autres techniques Power Fx, cette approche n’est pas toujours possible ou ne parvient pas à atteindre les objectifs de performances.
Pour résoudre ce problème, éliminez plusieurs appels HTTP de l’application canevas en déplaçant la transformation des données ( traitement des données et résultats requis) en une seule réponse. Cette approche réduit le temps d’attente pour la récupération des données, améliore les performances globales de l’application canevas et offre une expérience utilisateur plus fluide et plus réactive. En centralisant la logique de transformation des données, vous garantissez un traitement cohérent et efficace côté serveur, ce qui rend la solution évolutive pour de grands volumes de données et de transformations complexes.
Options
Les API personnalisées Dataverse et les fonctions Power Fx étendent la logique métier de Dataverse.
Fonctions Power Fx
Une fonction Power Fx crée une abstraction de la fonctionnalité d’API personnalisée de Dataverse, que vous pouvez utiliser avec Power Fx pour gérer la logique.
Les fonctions Power Fx étendent la logique métier de Dataverse et peuvent être appelées à la demande à partir de composants Power Platform tels que des applications canevas Power Apps, des flux Power Automate et des agents personnalisés créés avec Microsoft Copilot Studio. Cette fonctionnalité prend en charge l’implémentation d’une logique plus simple qui n’est pas assez complexe pour exiger l’utilisation de la fonctionnalité d’API personnalisée Dataverse complète.
API personnalisées Dataverse
Un plug-in Dataverse est un gestionnaire d’événements personnalisé qui s’exécute en réponse à des événements spécifiques. Dans le cas d’une API personnalisée Dataverse, lorsque vous définissez l’API, elle crée un événement personnalisé que l’application déclenche lorsqu’elle utilise l’API. Vous implémentez ces plug-ins en tant que classes personnalisées compilées dans un assembly .NET Framework, que vous chargez et inscrivez dans Dataverse.
Les plug-ins étendent la logique métier de Dataverse en permettant aux développeurs d’écrire du code personnalisé pour l’exécution lorsque certains événements se produisent, tels que la création, la mise à jour ou la suppression d’enregistrements, ou par le biais d’appels directs à l’aide de l’API personnalisée. Cette fonctionnalité prend en charge l’implémentation de processus métier plus complexes et personnalisés dans Power Platform, ce qui facilite l’intégration complète avec les applications canevas ou Power Automate.
En utilisant à la fois les fonctions Power Fx et les API personnalisées Dataverse, les fabricants peuvent appeler une action de fonction directement dans une formule, prenant en charge les actions liées et indépendantes. Ils peuvent également ajouter un objet de langage d’environnement Power Fx à leur application, ce qui permet d’accéder aux fonctions. En utilisant des API personnalisées Dataverse, les fabricants peuvent gérer des champs d’objet non typés pour les entrées et les sorties.
Recommendations
Les fonctions Power Fx et les API personnalisées Dataverse effectuent toutes deux des opérations de modification des données dans une transaction.
Choisissez les fonctions Power Fx si votre cas d’usage répond à ces critères :
- Votre logique n’est pas trop complexe et peut être exprimée à l’aide de Power Fx.
- Vous souhaitez permettre aux créateurs (non-développeurs) de créer et de maintenir la logique.
- Vous préférez une approche à faible code qui s’intègre en toute transparence au portail Power Apps.
- Vous avez besoin d’une cohérence transactionnelle , mais vous n’avez pas besoin de fonctionnalités .NET avancées.
- Vous souhaitez centraliser la logique pour la réutilisation entre les applications et les flux sans impliquer les développeurs .NET.
En savoir plus dans Functions dans Microsoft Dataverse (préversion).
Choisissez les API personnalisées Dataverse si votre cas d’usage nécessite :
- Logique métier complexe que Power Fx ne peut pas exprimer.
- Fonctionnalités avancées telles que la gestion des erreurs personnalisées, la télémétrie et l’intégration avec des systèmes externes.
- L’expertise en développement .NET est disponible et acceptable dans votre flux de travail.
- Contrôle total sur le pipeline d’exécution, y compris l’inscription et la surveillance des plug-ins.
- Télémétrie et diagnostics, tels que Application Insights pour le suivi de la santé.
Apprenez-en davantage dans Créer et utiliser des API personnalisées.
Si votre objectif est de simplifier les performances des applications de canevas tout en gardant la solution accessible et gérable par les fabricants, les fonctions Power Fx sont le meilleur choix. Si vous créez un back-end stratégique et hautement personnalisé, envisagez des API personnalisées Dataverse.
Alternatives
Une autre approche de ce modèle consiste à déplacer les opérations de données et la logique vers une API REST, puis à implémenter un connecteur personnalisé pour permettre aux opérations d’être utilisées à partir de Power Apps. La différence avec cette approche réside dans l’endroit où les opérations de logique et de données s’exécutent. Dans ce cas, ils s’exécutent dans la ressource de calcul qui implémente l’API REST, comme une fonction Azure.
Étant donné qu’elles ne s’exécutent pas dans le bac à sable du runtime Dataverse, les opérations de données sont plus rapides que celles du client, mais plus lentes que celles effectuées dans Dataverse. De même, la logique ne s’exécute pas dans le contexte de la transaction Dataverse. Sauf si des étapes spéciales sont effectuées, chaque opération de données est indépendante et ne se termine pas en tant qu’unité transactionnelle.
En savoir plus sur l’utilisation des API REST pour étendre les fonctionnalités des applications de canevas.
Considérations
Ces considérations mettent en œuvre les piliers de Power Platform Well-Architected, un ensemble de principes directeurs qui améliorent la qualité d’une charge de travail. Pour en savoir plus, consultez la rubrique Microsoft Power Platform Well-Architected.
Reliability
Concevez votre charge de travail pour éviter toute complexité inutile : le déplacement de vos opérations de données et de votre logique à partir de votre application canevas évite toute complexité inutile dans l’application. Cette approche centralise également la logique afin que d’autres applications de l’organisation puissent l’utiliser. En outre, les créateurs de Power Apps bénéficient d’améliorations des performances sans ajouter de complexité à l’application.
Test de résilience et de disponibilité : le déplacement de la logique de l’application canevas vers des API personnalisées Dataverse ou des fonctions Power Fx vous permet de tester l’API ou la fonction indépendamment de l’application.
Mesurer et publier des indicateurs d’intégrité (API personnalisées Dataverse) : les API personnalisées Dataverse fournissent une surveillance et une télémétrie avancées via le plug-in .NET. Pour garantir un suivi adéquat, envisagez d’utiliser la journalisation Application Insights .
Excellence opérationnelle
Adoptez des pratiques de déploiement sécurisées : normaliser le déploiement des modifications apportées à l’application Power Apps à l’aide de processus de déploiement automatisés, tels que des pipelines. Ne promouvez l’application en production qu’après avoir testé les modifications. En tant que composants de solution, les API personnalisées Dataverse et les fonctions Power Fx se déploient en même temps que l’application lorsqu’elles se présentent dans la même solution Dataverse. Cette approche réduit le risque de composants hors synchronisation dans vos environnements.
Implémentez une stratégie d’atténuation des défaillances de déploiement : lorsque vous déployez l’application et la fonction personnalisée Dataverse ou Power Fx ensemble, votre stratégie d’atténuation est simplifiée, car elle suit la même stratégie de restauration ou de correction que l’application.
Efficacité des performances
Conception pour répondre aux exigences de performances : évaluez les exigences en matière de performances et de volume de données de votre solution. Examinez comment votre application accède aux données et si Power Apps utilisant différentes sources de données ralentit les performances en raison de la latence de la requête individuelle envoyée à chaque magasin de données. Par exemple, si la logique de votre application fonctionne sur de nombreuses lignes de la source de données, vous pouvez peut-être déplacer tout le trafic réseau vers l’API ou la fonction personnalisée. La réduction d’une interaction unique avec l’API ou la fonction personnalisée, qui gère ensuite la communication avec Dataverse, rend les opérations plus efficaces.
Optimiser la logique (API personnalisées Dataverse) : À mesure que la logique devient plus complexe dans une application canevas, les API personnalisées Dataverse vous permettent de décharger cette logique vers un service centralisé et réutilisable.
Performances des tests : en plus des tests pour les fonctionnalités et les échecs, testez et développez une base de référence pour les performances. Évaluez cette ligne de base pendant votre cycle de publication si l’API personnalisée Dataverse ou la fonction Power Fx est sensible aux modifications apportées au temps d’achèvement du travail.
Contributeurs
Microsoft gère cet article. Les contributeurs suivants ont écrit cet article.
Auteurs principaux :
- Rui Santos, directeur principal du programme
- Ravikiran Patil, ingénieur logiciel senior