Nota
L'accés a aquesta pàgina requereix autorització. Pots provar d'iniciar sessió o canviar de directori.
L'accés a aquesta pàgina requereix autorització. Pots provar de canviar directoris.
A mesura que les organitzacions depenen cada cop més de Power Platform per construir aplicacions escalables i basades en dades, escollir l'enfocament adequat per implementar la lògica de negoci esdevé fonamental. Aquesta arquitectura de referència presenta dues opcions—funcions Power Fx i APIs personalitzades de Dataverse—per optimitzar el rendiment i la mantenibilitat en aplicacions de canvas de Power Apps.
Escenari
Per defecte, quan una aplicació consulta dades o realitza múltiples modificacions, envia sol·licituds individuals de xarxa HTTP a Dataverse. Dataverse retorna dades a l'aplicació, i la lògica de l'aplicació les processa.
Aquest patró d'implementació provoca temps d'espera, especialment quan l'aplicació envia múltiples sol·licituds, com en una funció ForAll. El temps d'espera afecta negativament el rendiment i l'experiència de l'usuari. Per exemple, si l'aplicació recupera i transforma dades diverses vegades en un bucle ForAll, el temps d'espera pot esdevenir substancial, provocant una experiència d'usuari lenta i ineficient.
Per optimitzar la interacció de dades, desplaça la lògica i les operacions de recuperació de dades de l'aplicació canvas a Dataverse utilitzant APIs personalitzades de Dataverse o funcions Power Fx. Les operacions de modificació de dades es completen dins d'una transacció, assegurant la coherència de les dades si es produeix un error.
Propina
Aquest article ofereix un escenari d'exemple i una arquitectura d'exemple generalitzada per il·lustrar com les aplicacions canvas que utilitzen Dataverse poden canviar la lògica de negoci complexa a APIs personalitzades de Dataverse i a funcions Power Fx per millorar el rendiment. Pots modificar l'exemple d'arquitectura per a molts escenaris i indústries diferents.
Diagrama de l'arquitectura
En aquest diagrama, les funcions Power Fx s'utilitzen per traslladar la lògica empresarial complexa de l'aplicació canvas a Dataverse. També pots utilitzar una API personalitzada de Dataverse per aconseguir el mateix resultat. Consulteu les Recomanacions per ajudar a decidir quina opció utilitzar.
Workflow
L'aplicació Canvas de Power Apps utilitza Dataverse per gestionar l'assignació de recursos. L'aplicació utilitza una funció Power Fx (una API personalitzada de Dataverse tindria el mateix propòsit) per a operacions pesades de dades en lloc d'utilitzar directament les capacitats d'accés integrades. L'aplicació encara utilitza capacitats integrades de Dataverse per a operacions i tasques de menor volum de dades que no requereixen suport transaccional.
La funció Power Fx (amb l'API personalitzada de Dataverse) està configurada per passar els paràmetres d'entrada de l'aplicació que crida i rebre el resultat (paràmetres de resposta) de la funció (o API) mitjançant paràmetres de sortida definits. Per a:
Funció Power Fx (previsualització): Implementa la lògica a Power Apps Studio. Mitjançant l'ús de funcions Power Fx, els creadors poden construir lògica complexa amb poca o cap experiència en programació. Aprèn més sobre funcions de Power Fx.
API personalitzada de Dataverse: Implementa la lògica creant un complement .NET de Dataverse. Els complements personalitzats de .NET requereixen més coneixements de programació però ofereixen un major control i extensibilitat. Aprèn més a les APIs personalitzades de Dataverse.
Detalls del cas d'ús
Power Apps permet a les organitzacions crear experiències d'usuari personalitzades i centralitzar la lògica de negoci. Utilitzant Power Apps, pots aconseguir una arquitectura de dades més eficient i reduir la càrrega de treball al costat del client.
En l'exemple següent, l'aplicació de canvas Power Apps ajuda els creadors a assignar recursos de manera eficient als equips i tasques. Pots aplicar aquest patró d'arquitectura a escenaris similars on l'aplicació canvas inclou operacions de dades i requereix:
- Múltiples bucles a l'aplicació canvas, cosa que no pots aconseguir utilitzant la funció Concurrent .
- Càlculs intensius per a múltiples transformacions de dades.
- Temps d'execució consistent, independent del nombre d'elements en un bucle o de la connexió a internet de l'usuari.
- Consistència de dades a través de múltiples operacions de modificació de dades.
Per assignar recursos, un creador ha d'especificar les ubicacions, tasques, subtasques i altres metadades relacionades amb l'assignació. A l'aplicació canvas, la pantalla "Resum de recursos" mostra múltiples nivells de dades correlacionades, com ara:
- Recursos
- Ubicació
- Tasques
- Subtasques
- Aprovació
- Subtasques
- Tasques
- Ubicació
Per aconseguir aquest objectiu, pots implementar la lògica de l'aplicació utilitzant Power Fx de la manera següent:
ForAll(Resources,
//Transformations
ForAll(Location,
//Transformations...
ForAll(Tasks,
//Transformations ...
)
)
)
Aquesta lògica genera múltiples crides HTTP a Dataverse quan l'aplicació s'executa. Tot i que la millor pràctica és consolidar dades a les vistes de Dataverse o utilitzar funcions concurrents o altres tècniques Power Fx, aquest enfocament no sempre és possible o no compleix els objectius de rendiment.
Per abordar aquest problema, elimina múltiples trucades HTTP de l'aplicació canvas desplaçant la transformació de dades — el processament de dades i els resultats requerits — a una sola resposta. Aquest enfocament redueix el temps d'espera per a la recuperació de dades, millora el rendiment global de l'aplicació canvas i proporciona una experiència d'usuari més fluida i responsiva. Centralitzant la lògica de transformació de dades, assegures un processament consistent i eficient al costat del servidor, cosa que fa que la solució sigui escalable per a grans volums de dades i transformacions complexes.
Opcions
Tant les API personalitzades de Dataverse com les funcions Power Fx amplien la lògica de negoci de Dataverse.
Funcions del Power Fx
Una funció Power Fx crea una abstracció de la capacitat d'API personalitzada de Dataverse que permet utilitzar Power Fx per a la lògica.
Les funcions de Power Fx amplien la lògica de negoci de Dataverse i es poden invocar a demanda des de components de Power Platform com les aplicacions canvas de Power Apps, els fluxos de Power Automate i des d'agents personalitzats creats amb Microsoft Copilot Studio. Aquesta funcionalitat suporta la implementació de lògica més bàsica que no és prou complexa com per requerir l'ús complet de la capacitat d'API personalitzada de Dataverse.
APIs personalitzades de Dataverse
Un complement Dataverse és un gestor d'esdeveniments personalitzat que s'executa en resposta a esdeveniments específics. En el cas d'una API personalitzada de Dataverse, quan defineixes l'API, crea un esdeveniment personalitzat que l'aplicació genera quan utilitza l'API. Implementes aquests complements com a classes personalitzades compilades en un ensamblador .NET Framework, que després puges i registres dins de Dataverse.
Els complements amplien la lògica de negoci de Dataverse permetent als desenvolupadors escriure codi personalitzat per a l'execució quan es produeixen certs esdeveniments, com crear, actualitzar o eliminar registres, o mitjançant trucades directes mitjançant l'API personalitzada. Aquesta funcionalitat dóna suport a la implementació de processos empresarials més complexos i personalitzats dins de Power Platform, facilitant la integració completa amb aplicacions canvas o Power Automate.
Utilitzant tant funcions Power Fx com APIs personalitzades de Dataverse, els creadors poden invocar una acció de funció directament dins d'una fórmula, suportant tant accions lligades com no vinculades. També poden afegir un objecte de llenguatge d'entorn Power Fx a la seva aplicació, permetent l'accés a funcions. Mitjançant l'ús d'APIs personalitzades de Dataverse, els creadors poden gestionar camps d'objecte sense tipus tant per a entrades com per a sortides.
Recomanacions
Tant les funcions Power Fx com les APIs personalitzades de Dataverse completen operacions de modificació de dades en una transacció.
Tria funcions Power Fx si el teu cas d'ús compleix aquests criteris:
- La teva lògica no és excessivament complexa i es pot expressar amb Power Fx.
- Vols empoderar els creadors (no desenvolupadors) per construir i mantenir la lògica.
- Prefereixes un enfocament low-code que s'integri perfectament amb el portal Power Apps.
- Necessites coherència transaccional però no requereixes capacitats avançades de .NET.
- Vols centralitzar la lògica per reutilitzar-la entre aplicacions i fluxos sense involucrar desenvolupadors de .NET.
Més informació a Funcions a Microsoft Dataverse (vista prèvia).
Tria APIs personalitzades de Dataverse si el teu cas d'ús ho requereix:
- Lògica empresarial complexa que Power Fx no sap expressar.
- Capacitats avançades com la gestió personalitzada d'errors, la telemetria i la integració amb sistemes externs.
- L'experiència en desenvolupament .NET està disponible i és acceptable en el teu flux de treball.
- Control total sobre la pipeline d'execució, incloent-hi el registre i la supervisió dels connectors.
- Telemetria i diagnòstic, com ara Application Insights per al seguiment de la salut.
Aprèn més a Crear i utilitzar APIs personalitzades.
Si el teu objectiu és optimitzar el rendiment de les aplicacions Canvas mantenint la solució accessible i fàcil de mantenir pels fabricants, les funcions Power Fx són la millor opció. Si estàs construint un backend crític i altament personalitzat, considera les APIs personalitzades de Dataverse.
Alternatives
Un altre enfocament per a aquest patró és traslladar les operacions de dades i la lògica a una API REST i després implementar un connector personalitzat per permetre que les operacions s'utilitzin des de Power Apps. La diferència d'aquest enfocament rau en on s'executen les operacions lògiques i de dades. En aquest cas, s'executen en el recurs de càlcul que implementa l'API REST, com ara una funció d'Azure.
Com que no s'executen dins del sandbox d'execució de Dataverse, les operacions de dades són més ràpides que les del client però més lentes que les realitzades dins de Dataverse. De manera similar, la lògica no s'executa dins el context de la transacció Dataverse. A menys que es facin passos especials, cada operació de dades és independent i no es completa com una unitat transaccional.
Aprèn més a Utilitza APIs REST per ampliar la funcionalitat de les aplicacions canvas.
Consideracions
Aquestes consideracions implementen els pilars de Power Platform Well-Architected, un conjunt de principis rectors que milloren la qualitat d'una càrrega de treball. Més informació a Microsoft Power Platform Well-Architected.
Fiabilitat
Dissenya la teva càrrega de treball per evitar complexitats innecessàries: Desplaçar les operacions de dades i la lògica des de l'aplicació Canvas evita complexitats innecessàries dins l'aplicació. Aquest enfocament també centralitza la lògica perquè altres aplicacions de l'organització la puguin utilitzar. A més, els creadors de Power Apps es beneficien de millores de rendiment sense afegir complexitat a l'aplicació.
Comprova la resiliència i disponibilitat: Traslladar la lògica de l'aplicació canvas a APIs personalitzades de Dataverse o funcions Power Fx et permet provar l'API o la funció de manera independent de l'aplicació.
Mesura i publica indicadors de salut (APIs personalitzades de Dataverse): Les APIs personalitzades de Dataverse proporcionen monitoratge avançat i telemetria a través del connector .NET. Per garantir un seguiment adequat, considera utilitzar el registre d'Application Insights .
Excel·lència operativa
Adoptar pràctiques de desplegament segures: Estandarditzar el desplegament dels canvis a l'aplicació Power Apps utilitzant processos automatitzats de desplegament, com ara pipelines. Promoure l'aplicació a producció només després de provar els canvis. Com a components de la solució, les API personalitzades de Dataverse i les funcions Power Fx es despleguen juntament amb l'aplicació quan estan a la mateixa solució Dataverse. Aquest enfocament minimitza el risc de components desincronitzats als entorns.
Implementa una estratègia de mitigació de fallades de desplegament: Quan desplegues l'aplicació i l'API personalitzada de Dataverse o la funció Power Fx alhora, la teva estratègia de mitigació es simplifica perquè segueix la mateixa estratègia de rollback o fix que l'aplicació.
Eficiència del rendiment
Dissenya per complir els requisits de rendiment: Avalua els requisits de rendiment i volum de dades de la teva solució. Revisa com accedeix la teva aplicació a les dades i si Power Apps utilitzant diferents fonts de dades ralentitza el rendiment a causa de la latència de la petició individual enviada a cada magatzem de dades. Per exemple, si la lògica de la teva aplicació funciona a través de moltes files de la font de dades, potser podràs traslladar tot el trànsit de xarxa a l'API o funció personalitzada. Reduir a una sola interacció amb l'API o funció personalitzada, que després gestiona la comunicació amb Dataverse, fa que les operacions siguin més eficients.
Optimitzar la lògica (APIs personalitzades de Dataverse): A mesura que la lògica es torna més complexa en una aplicació canvas, les APIs personalitzades de Dataverse et permeten transferir aquesta lògica a un servei centralitzat i reutilitzable.
Rendiment de la prova: A més de provar funcionalitats i fallades, prova i desenvolupa una línia base de rendiment. Avalua aquesta línia base durant el teu cicle de llançament si l'API personalitzada de Dataverse o la funció Power Fx són sensibles als canvis en el temps de finalització del treball.
Col·laboradors
Microsoft manté aquest article. Els següents col·laboradors van escriure aquest article.
Autors principals:
- Rui Santos, director principal de programes
- Ravikiran Patil, Enginyer de Programari Sènior