Compartir por


Visión xeral de Microsoft Power Fx

Power Fx Fx é a linguaxe de baixo código que se usará en todo Microsoft Power Platform. É unha linguaxe de programación de uso xeral, de tipo forte, declarativo e funcional.

Power Fx exprésase nun texto comprensible para os humanos. É unha linguaxe de código baixo coa que os fabricantes poden traballar directamente nunha barra de fórmulas tipo Excel ou unha xanela de texto de Visual Studio Code. O de "baixo código" débese á natureza concisa e sinxela da linguaxe, que facilita as tarefas comúns de programación tanto para os creadores como para os programadores. Permite o espectro completo de desenvolvemento desde o de tipo "sen código" para aqueles que nunca programaron antes ata o "código profesional" para os profesionais experimentados, sen dificultades de aprendizaxe ou reescritura, permitindo a diversos equipos colaborar e aforrar tempo e gastos.

Nota

  • Microsoft Power Fx é o novo nome da linguaxe de fórmulas para aplicacións de lenzo en Power Apps. Esta visión xeral e os artigos asociados son un traballo en curso a medida que extraemos o idioma das aplicacións de lenzo, o integramos con outros produtos de Microsoft Power Platform e o poñemos a disposición como código aberto. Para obter máis información e experimentar o idioma hoxe, comece por Comezar con fórmulas en aplicacións de lenzo na documentación de Power Apps e rexístrese para obter unha proba de Power Apps gratis.
  • Neste artigo, referímonos a creadores cando describimos unha característica que pode usarse en calquera dos extremos do espectro de habilidades de programación. Referímonos ao usuario como programador se a función é máis avanzada e é probable que estea fóra do alcance dun usuario típico de Excel.

Power Fx une os obxectos con fórmulas declarativas similares a follas de cálculo. Por exemplo, pense na propiedade Visible dun control de interface de usuario como se fose unha cela nunha folla de traballo de Excel, cunha fórmula asociada que calcula o seu valor en función das propiedades doutros controis. A lóxica da fórmula recalcula o valor automaticamente, de xeito similar ao que fai unha folla de cálculo, o que afecta a visibilidade do control.

Ademais, Power Fx ofrece unha lóxica imperativa cando é necesario. As follas de traballo normalmente non teñen botóns que poidan enviar cambios a unha base de datos, pero as aplicacións adoitan telos. Utilízase a mesma linguaxe de expresión para a lóxica declarativa e para a imperativa.

Power Fx estará dispoñible como software de código aberto. Actualmente está integrado nas aplicacións de lenzo, e estamos en proceso de extraelo de Power Apps e usalo noutros produtos de Microsoft Power Platform e como código aberto. Máis información: Microsoft Power Fx en GitHub

Este artigo é unha descrición xeral da linguaxe e dos seus principios de deseño. Para obter máis información sobre Power Fx, consulte os seguintes artigos:

Folla de cálculo intelixente

E se puidese construír unha aplicación tan facilmente como se crea unha folla de traballo en Excel?

E se puidese aproveitar os seus coñecementos das folla de cálculo existentes?

Estas foron as preguntas que inspiraron a creación de Power Apps e Power Fx. Centos de millóns de persoas crean follas de traballo con Excel todos os días; traiámoslles unha creación de aplicacións fácil e que empregue conceptos de Excel que xa coñecen. Ao sacar Power Fx de Power Apps, imos responder a estas preguntas para a automatización de edificios ou un axente virtual ou outros dominios.

Todas as linguaxes de programación, incluída Power Fx, teñen expresións: un xeito de representar un cálculo mediante números, cadeas ou outros tipos de datos. Por exemplo, mass * acceleration na maioría das linguaxes expresa a multiplicación de mass e acceleration. O resultado dunha expresión pódese colocar nunha variable, usarse como argumento dun procedemento ou aniñarse nunha expresión máis grande.

Power Fx leva isto un paso máis adiante. Unha expresión por si mesma non di nada sobre o que calcula. Depende de que creador a coloque nunha variable ou a pase a unha función. En Power Fx, en lugar de escribir só unha expresión que non ten un significado específico, escribe unha fórmula que une a expresión a un identificador. Vostede escribe force = mass * acceleration como fórmula para calcular force. A medida que mass ou acceleration cambia, force actualízase automaticamente a un novo valor. A expresión describiu un cálculo, unha fórmula deulle un nome a ese cálculo e utilizouno como receita. Este é o motivo polo que nos referimos a Power Fx como a linguaxe das fórmulas.

Por exemplo, esta fórmula de Stack Overflow busca unha cadea en orde inversa. En Excel, parécese á seguinte imaxe.

Busca inversa

Captura de pantalla dunha barra de fórmulas en Excel coa fórmula: =RIGHT(A1,LEN(A1)- FIND("|", SUBSTITUTE(A1," ","|", LEN(A1)-LEN(SUBSTITUTE(A1," ","")))) A cela A1 contén o texto "Hello, World! It is great to meet you!" A cela A2 contén o texto "you!"

Power Fx funciona con esta mesma fórmula, substituíndo as referencias de celas por referencias de propiedades de control:

Power Fx Busca inversa.

Captura de pantalla dunha barra de fórmulas de Power Fx en Power Apps. A fórmula é =RIGHT(Input.Text,Len(Input.Text)- FIND("|", SUBSTITUTE(Input.Text," ","|", Len(Input.Text)-Len(Substitute(Input.Text," ","")))) No cadro de entrada debaixo da fórmula, aparece o texto "Hello, World! Aparece It is great to meet you!", letra a letra. Ao mesmo tempo na caixa Etiqueta aparecen as letras da última palabra. Cando o texto completo aparece na caixa de entrada, a palabra "you!" aparece na caixa de etiqueta.

A medida que se cambia o valor de control de Input, o control de Label recalcula automaticamente a fórmula e mostra o novo valor. Non hai ningún indicador de evento de OnChange aquí, como sería común noutras linguaxes.

Outro exemplo que usa unha fórmula para a cor de Fill da pantalla. A medida que se cambian os controles deslizantes que controlan o vermello, o verde e o azul, a cor de fondo cambia automaticamente a medida que se recalcula.

Deslizador de cor.

Non hai ningún evento de OnChange para os controis dos cursores da barra de desprazamento, como sería común noutras linguaxes. Non hai ningunha forma de configurar explicitamente o valor da propiedade Fill en absoluto. Se a cor non funciona como se esperaba, debe mirar esta fórmula para comprender por que non funciona. Non precisa buscar na aplicación para atopar un anaco de código que estableza a propiedade nun momento inesperado; non hai elemento temporal. Sempre se manteñen os valores de fórmula correctos.

Como os cursores da barra de desprazamento están configurados para establecer unha cor escura, as etiquetas de Vermello, Verde e Azul cambian a branco para compensar. Isto faise a través dunha sinxela fórmula na propiedade Color para cada control de etiqueta.

Power Fx deslizadores de cor.

O xenial disto é que está illado do que está a suceder na cor Fill: son dous cálculos completamente diferentes. En vez de grandes procedementos monolíticos, a lóxica de Power Fx normalmente está composta por moitas fórmulas máis pequenas que son independentes. Isto facilítanos a comprensión e permite melloras sen perturbar a lóxica existente.

Power Fx é unha linguaxe declarativa, igual que Excel. O creador define o comportamento que desexa, pero depende do sistema determinar e optimizar como e cando realizalo. Para facelo práctico, a maioría do traballo realízase a través de funcións puras sen efectos secundarios, facendo de Power Fx tamén unha linguaxe funcional (de novo, igual que Excel).

Sempre activo

Un aspecto definitorio das follas de traballo é que sempre están activas e os cambios reflíctense instantaneamente. Non hai modo de compilación nin execución nunha folla de traballo. Cando se modifica unha fórmula ou se introduce un valor, a folla de traballo recalculase inmediatamente para reflectir os cambios. Os erros detectados aparecen inmediatamente e non interfiren co resto da folla de traballo.

O mesmo se implementa con Power Fx. Un compilador incremental úsase para manter o programa continuamente sincronizado cos datos cos que está a funcionar. Os cambios propáganse automaticamente a través do gráfico do programa, afectando os resultados de cálculos dependentes, que poden impulsar propiedades en controis como a cor ou a posición. O compilador incremental tamén ofrece unha rica experiencia de edición de fórmulas con IntelliSense, suxestións, autocompletado e comprobación de tipos.

Na animación de abaixo, o número de pedido móstrase nun control de etiqueta dependente do control do cursor da barra de desprazamento, aínda que hai dous erros nas etiquetas de debaixo. A aplicación está moi viva e é interactiva. O primeiro intento de arranxar a fórmula inserindo .InvalidName resulta nunha liña vermella inmediata e aparece un erro, como debería, pero a aplicación segue funcionando.

Vivir sempre.

Cando .Employee se insire, isto provoca que o panel Data engada a táboa Empregados, recupéranse os metadatos desta táboa e ofrécense inmediatamente suxestións de columnas. Acabamos de percorrer unha relación dunha táboa a outra, e o sistema fixo os axustes necesarios nas referencias da aplicación. O mesmo ocorre cando se engade un .Customer.

Despois de cada cambio, o cursor da barra de desprazamento continúa co seu último valor e as variables conservan o seu valor. Durante todo o tempo, o número de pedido continuouse mostrando na etiqueta superior como debería. A aplicación estivo activa, procesando datos reais todo o tempo. Podemos gardalo, saír e outros poden abrila e usala como Excel. Non hai ningún paso de creación, nin compilación, só hai un paso de publicación para determinar que versión da aplicación está lista para os usuarios.

Pouco código

Power Fx describe a lóxica empresarial en fórmulas concisas pero potentes. A maior parte da lóxica pódese reducir a unha única liña, con moita expresividade e control para atender as necesidades máis complexas. O obxectivo é manter ao mínimo o número de conceptos que un fabricante necesita entender, o ideal sería non máis do que un usuario de Excel xa debería saber.

Por exemplo, para buscar o nome dun empregado nun pedido, escriba a Power Fx como se mostra na seguinte animación. Máis alá dos conceptos de Excel, o único concepto engadido usado aquí é a notación de punto "." para afondar nunha estrutura de datos, neste caso .Employee.'First Name'. A animación mostra a asignación entre as partes da fórmula de Power Fx e os conceptos que é preciso codificar explicitamente no JavaScript equivalente.

JavaScript de código baixo.

Botemos unha ollada máis en profundidade a todas as cousas que Power Fx está a facer por nós e a liberdade que ten para optimizar porque a fórmula foi declarativa:

  • Asíncrono: todas as operacións de datos en Power Fx son asíncronas. O creador non precisa especificar isto, nin ten que sincronizar as operacións unha vez finalizada a chamada. O fabricante non ten que ser consciente deste concepto en absoluto, non precisa saber que é unha función promesa ou lambda.

  • Local e remoto: Power Fx usa a mesma sintaxe e funcións para os datos que están na memoria local e remotamente nunha base de datos ou servizo. O usuario non ten que pensar nesta distinción. Power Fx delega automaticamente o que pode ao servidor, para procesar filtros e clasificalos alí de forma máis eficiente.

  • Datos relacionais: Os pedidos e os clientes son dúas táboas diferentes, cunha relación de varios a un. A consulta OData require un "$expand" con coñecemento da clave estranxeira, similar a Join en SQL. A fórmula non ten nada disto; de feito, as claves da base de datos son outro concepto que o fabricante non precisa saber. O creador pode usar unha simple notación de puntos para acceder a todo o gráfico de relacións desde un rexistro.

  • Proxección: Cando escriben unha consulta, moitos programadres escriben select * from table, que devolve todas as columnas de datos. Power Fx analiza todas as columnas que se usan a través de toda a aplicación, incluso en dependencias de fórmulas. A proxección optimízase automaticamente e, de novo, o fabricante non precisa saber o que significa "proxección".

  • Recuperar só o necesario: Neste exemplo, a función LookUp implica que só se debe recuperar un rexistro e é o único que se devolve. Se se solicitan máis rexistros mediante a función Filter, ao que poderían optar miles de rexistros, só se devolve unha única páxina de datos á vez, cunha orde de 100 rexistros por páxina. O usuario debe facer xestos a través dunha galería ou táboa de datos para ver máis datos e automaticamente traeránselle. O fabricante pode razoar sobre grandes conxuntos de datos sen ter que pensar en limitar as solicitudes de datos a anacos manexables.

  • Funciona só cando é necesario: Definimos unha fórmula para a propiedade Text do control da etiqueta. A medida que cambia a variable seleccionada, LookUp recalcúlase automaticamente e actualízase a etiqueta. O fabricante non precisou escribir un controlador OnChange para a selección, e non precisou lembrar que esta etiqueta depende dela. Esta é unha programación declarativa, como se comentou anteriormente: o fabricante especificou o que quería ter na etiqueta, non como nin cando se debería buscar. Se esta etiqueta non é visible porque está nunha pantalla que non é visible, ou ben a propiedade Visible é falsa, podemos diferir este cálculo ata que a etiqueta sexa visible e eliminala efectivamente se iso ocorre raramente.

  • Tradución de sintaxe de Excel: Excel é usado por moitos usuarios, a maioría dos cales saben que a ampersand (&) úsase para a concatenación de cordas. JavaScript usa un signo máis (+) e outras linguas usan un punto (.).

  • Nomes para mostrar e localización: First Name úsase na fórmula de Power Fx mentres nwind_firstname úsase no equivalente de JavaScript. En Microsoft Dataverse e SharePoint, hai un nome de visualización para columnas e táboas ademais dun nome lóxico único. Os nomes de visualización adoitan ser moito máis fáciles de usar, coma neste caso, pero teñen outra calidade importante porque poden ser localizados. Se ten un equipo multilingüe, cada membro do equipo pode ver os nomes de táboas e campos no seu propio idioma. En todos os casos de uso, Power Fx asegúrase de que o nome lóxico correcto se envíe á base de datos automaticamente.

Sen código

Non ten que ler e escribir en Power Fx para comezar a expresar a lóxica. Hai moitas personalizacións e lóxicas que se poden expresar a través de conmutadores simples e creadores de IU. Estas ferramentas sen código foron creadas para ler e escribir en Power Fx para garantir que haxa espazo libre para que alguén o poida ir máis alá, ao tempo que recoñece que as ferramentas sen código nunca ofrecerán toda a expresividade da linguaxe completa. Mesmo cando se usa con creadores sen código, a barra de fórmulas está nun lugar central en Power Apps para educar ao creador sobre o que se está a facer no seu nome para que poida comezar a aprender a usar Power Fx.

Observemos algúns exemplos. En Power Apps, o panel de propiedades ofrece conmutadores e botóns sen código para as propiedades dos controis. Na práctica, a maioría dos valores das propiedades son estáticos. Pode usar o creador de cores para cambiar a cor de fondo da Gallery. Teña en conta que a barra de fórmulas reflicte este cambio, actualizando a fórmula a outra chamada RGBA. En calquera momento, pode ir á barra de fórmulas e dar un paso máis alá; neste exemplo, usando ColorFade para axustar a cor. A propiedade da cor aínda aparece no panel de propiedades, pero unha icona de fx aparece ao pasar o cursor e diríxeo á barra de fórmulas. Isto funciona completamente de dous xeitos: eliminando a chamada ColorFade devolve a cor a algo que o panel de propiedades pode entender e pode usalo de novo para establecer unha cor.

Cor sen código.

Aquí ofrecemos un exemplo máis complicado. A galería mostra unha lista de empregados de Dataverse. Dataverse ofrece vistas sobre os datos da táboa. Podemos seleccionar unha destas vistas e a fórmula cambia para usar a función Filter con este nome de vista. Os dous menús despregables pódense usar para marcar a táboa correcta e vela sen tocar a barra de fórmulas. Pero digamos que quere ir máis alá e engadir unha orde. Podemos facelo na barra de fórmulas, e o panel de propiedades volve amosar unha icona fx e dirixe as modificacións á barra de fórmulas. E de novo, se simplificamos a fórmula a algo que o panel de propiedades pode ler e escribir, poderase usar de novo.

Non hai tipo de código.

Estes foron exemplos sinxelos. Cremos que Power Fx é unha boa linguaxe para describir interaccións sen código. É conciso, potente e doado de analizar e proporciona o espazo que tantas veces se necesita "sen cantís" e con pouco código.

Código profesional

Os fabricantes de código baixo ás veces crean cousas que requiren a axuda dun experto ou que un programador profesional asume para manter e mellorar. Os profesionais tamén aprecian que o desenvolvemento de pouco código pode ser máis doado, rápido e menos custoso que a creación dunha ferramenta profesional. Non todas as situacións requiren toda a potencia de Visual Studio.

Os profesionais queren empregar ferramentas profesionais para ser máis produtivos. As fórmulas de Power Fx pódense almacenar en ficheiros de orixe de YAML, que son fáciles de editar con Visual Studio Code, Visual Studio ou calquera outro editor de texto e permita que Power Fx se poña baixo o control de fonte con GitHub, Azure DevOps ou calquera outro sistema de control de código fonte.

 Visual Studio Código Pro.

Código Pro GitHub.

Power Fx admite compoñentes baseados en fórmulas para compartir e reutilizar. Anunciamos compatibilidade cos parámetros das propiedades dos compoñentes, permitindo a creación de funcións puras definidas polo usuario con máis melloras no camiño.

Ademais, Power Fx é xenial para xuntar compoñentes e servizos creados por profesionais. Os conectores listos para usar proporcionan acceso a centos de orixes de datos e servizos web, os conectores personalizados permiten a Power Fx falar con calquera servizo web REST e os compoñentes de código permiten a Power Fx interactuar cun JavaScript totalmente personalizado na pantalla e na páxina.

Principios de deseño

Simple

Power Fx está deseñado para dirixirse ao público creador, cuxos membros non foron adestrados como programadores. Sempre que é posible, empregamos o coñecemento do que este público xa dispón ou que podería adquirir rapidamente. O número de conceptos necesarios para ter éxito é reducido ao mínimo.

Ser sinxelo tamén é bo para os desenvolvedores. Para o público dos desenvolvedores, pretendemos ser unha linguaxe con pouco código que reduza o tempo necesario para construír unha solución.

Coherencia con Excel

O idioma Microsoft Power Fx colle moitos empréstitos da linguaxe de fórmulas de Excel. Buscamos aproveitar o coñecemento e a experiencia de Excel dos moitos fabricantes que tamén usan Excel. Os tipos, os operadores e a semántica das funcións están o máis preto posible de Excel.

Se Excel non ten resposta, entón miramos SQL. Despois de Excel, SQL é a seguinte linguaxe declarativa máis empregada e pode proporcionar orientacións sobre as operacións de datos e o tipado forte que Excel non pode.

Declarativo

O fabricante describe que quere que faga a súa lóxica, non exactamente como nin cando facelo. Isto permite ao compilador optimizar realizando operacións en paralelo, aprazando o traballo ata que sexa necesario e recuperando previamente e reutilizando datos na caché.

Por exemplo, nunha folla de traballo de Excel, o autor define as relacións entre celas, pero Excel decide cando e en que orde as fórmulas son avaliadas. Do mesmo xeito, as fórmulas dunha aplicación pódense considerar como "recálculos" segundo sexa necesario en función das accións do usuario, os cambios na base de datos ou os eventos de temporizador.

Funcional

Favorecemos as funcións puras que non teñan efectos secundarios. Isto ten como resultado unha lóxica máis fácil de entender e que lle dá ao compilador a máxima liberdade de optimización.

A diferenza de Excel, as aplicacións pola súa natureza mutan o estado; por exemplo, as aplicacións teñen botóns que gardan os cambios no rexistro dunha base de datos. Polo tanto, algunhas funcións teñen efectos secundarios, aínda que o limitamos tanto como sexa práctico.

Composición

Cando sexa posible, a funcionalidade engadida componse ben coa funcionalidade existente. As potentes funcións pódense descompoñer en partes máis pequenas que se poden usar máis facilmente de xeito independente.

Por exemplo, o control de Galería non ten propiedades Sort e Filter separadas. Pola contra, as funcións Sort e Filter compóñense xuntas nunha soa propiedade Items. A interface de usuario para expresar o comportamento de Sort e Filter está en capas sobre a propiedade Items usando un editor bidireccional para esta propiedade.

Escritura forte

Os tipos de todos os valores coñécense no momento da compilación. Isto permite a detección precoz de erros e suxestións enriquecidas durante a creación.

Admítense os tipos polimórficos, pero antes de poder usalos, o seu tipo debe estar fixado nun tipo estático e ese tipo debe coñecerse no momento da compilación. As funcións IsType e AsType fornécense para probar e emitir tipos.

Inferencia de tipo

Os tipos derívanse do seu uso sen ser declarados. Por exemplo, configurar unha variable como número fai que o tipo da variable se estableza como número.

O uso de tipos en conflito orixina un erro no tempo de compilación.

Separadores decimais que teñen en conta a configuración rexional

Algunhas rexións do mundo usan un punto (.) como separador decimal, mentres que outras usan unha coma (,). Isto é o que fai Excel tamén. Isto normalmente non se fai noutras linguaxes de programación, que normalmente usan un punto canónico (.) como separador decimal para todos os usuarios de todo o mundo. Para ser o máis accesible posible para os fabricantes de todos os niveis, é importante que 3,14 sexa un número decimal para unha persoa en Francia que usou esa sintaxe toda a vida.

A elección do separador decimal ten un impacto en cascada no separador de lista, usado para argumentos de chamada de funcións e no operador de encadeamento.

Separador decimal do idioma do autor Separador decimal de Power Fx Separador de listas de Power Fx Operador de encadeamento de Power Fx
. (punto) . (punto) , (coma) ; (punto e coma)
, (coma) , (coma) ; (punto e coma) ;; (punto e coma dobre)

Máis información: Compatibilidade global

Sen orientación a obxectos

Excel non está orientado a obxectos e Power Fx tampouco. Por exemplo, nalgúns idiomas, a lonxitude dunha cadea exprésase como unha propiedade da cadea, como "Hello World".length en JavaScript. Excel e Power Fx en vez diso expresan isto en termos dunha función, como Len( "Hello World" ).

Os compoñentes con propiedades e métodos están orientados a obxectos e Power Fx funciona facilmente con eles. Pero cando é posible, preferimos un enfoque funcional.

Extensible

Os fabricantes poden crear os seus compoñentes e funcións empregando o propio Power Fx. Os desenvolvedores poden crear os seus compoñentes e funcións escribindo JavaScript.

Adecuado para desenvolvedores

Aínda que os fabricantes son o noso principal obxectivo, intentamos ser compatibles cos desenvolvedores sempre que sexa posible. Se non entra en conflito cos principios de deseño descritos anteriormente, facemos as cousas dun xeito que un programador agradecerá. Por exemplo, Excel non ten capacidade para engadir comentarios, polo que empregamos comentarios entre liñas e en liñas tipo C.

Evolución da linguaxe

A evolución das linguaxes de programación é necesaria e complicada. A todos, con razón, nos preocupa que un cambio, por moi ben intencionado que sexa, poida romper o código existente e requirir aos usuarios que aprendan un novo padrón. Power Fx toma en serio a compatibilidade con versións anteriores, pero tamén cremos firmemente que non sempre acertaremos á primeira e que aprenderemos colectivamente que é o mellor como comunidade. Debemos evolucionar, e Power Fx deseñou unha compatibilidade coa evolución da linguaxe desde o principio.

Inclúe un selo de versión da linguaxe con todos os documentos de Power Fx que se gardan. Se queremos facer un cambio incompatible, escribiremos o que chamamos un "conversor de compatibilidade posterior" que reescribe a fórmula automaticamente a próxima vez que se edite. Se o cambio é algo importante sobre o que debemos educar ao usuario, tamén amosaremos unha mensaxe cunha ligazón aos documentos. Usando esta función, podemos seguir cargando aplicacións que foron creadas coas versións de versión preliminar de Power Apps de hai moitos anos, a pesar de todos os cambios que se produciron dende entón.

Por exemplo, introducimos a función ShowError para amosar unha faixa de erro cun fondo vermello.

Mostrar erro.

Aos usuarios encantoulles, pero tamén nos pediron unha forma de amosar unha faixa de éxito (fondo verde) ou unha faixa informativa (fondo azul). Entón, ocorréusenos unha función Notify máis xenérica que leva un segundo argumento para o tipo de notificación. Acabamos de engadir Notify e mantívose ShowError como estaba, pero no seu lugar substituímos ShowError por Notify. Eliminamos unha función que xa estivo en produción e substituímola por outra cousa. Como habería dúas formas de facer o mesmo, isto causaría confusión, especialmente para os novos usuarios e, o máis importante, engadiría complexidade. Ninguén se queixou, todos apreciaron o cambio e despois pasaron á súa seguinte función de Notificación.

Así é como se ve a mesma aplicación cando se carga na última versión de Power Apps. O usuario non requiriu ningunha acción para que esta transformación se producise, produciuse automaticamente cando se abriu a aplicación.

A función de notificación substitúe a ShowError.

Con esta facilidade, Power Fx pode evolucionar máis rápido e de forma máis agresiva que a maioría das linguaxes de programación.

Ningún valor indefinido

Algúns idiomas, como JavaScript, utilizan o concepto de valor sen definir para variables non iniciadas ou propiedades que faltan. Por simplicidade, evitamos este concepto. As instancias que non estarían definidas noutros idiomas trátanse como un erro ou como un valor en branco. Por exemplo, todas as variables coa iniciación anulada comezan cun valor en branco. Todos os tipos de datos poden asumir o valor de baleiro.

Tipos de datos
Operadores e identificadores
Táboas
Variables
Lóxica imperativa
Asistencia global
Gramática de expresión
Gramática da fórmula YAML
Fórmulas en aplicacións de lenzo