Přehled Microsoft Power Fx

Power Fx je jazyk s nízkým kódem, který Microsoft Power Platform používá. Jedná se o univerzální, silně napsaný, deklarativní a funkční programovací jazyk.

Power Fx je vyjádřen lidsky srozumitelným textem. Jedná se o jazyk s minimem kódu, se kterým mohou tvůrci pracovat přímo v řádku vzorců podobném Excelu nebo textovému oknu Visual Studio Code. "Minimum" v nízkém kódu pochází z stručné a jednoduché povahy jazyka, což usnadňuje běžné programovací úlohy pro tvůrce i vývojáře. Umožňuje celé spektrum vývoje bez kódu pro ty, kteří nikdy nenaprogramovali před "pro-code" pro ochuceného profesionála, bez učení nebo přepisování útesů mezi nimi. Různorodé týmy můžou spolupracovat a ušetřit čas a výdaje.

Poznámka:

  • Microsoft Power Fx je nový název pro jazyk vzorců v aplikacích plátna v Power Apps. Tento přehled a související články jsou probíhající, protože Microsoft extrahuje jazyk z aplikací plátna, integruje ho s dalšími produkty Microsoft Power Platform a zpřístupňuje ho jako open source. Chcete-li se o jazyce dozvědět více a zažít jej ještě dnes, začněte přečtením článku Začínáme se vzorci v aplikacích plátna v dokumentaci Power Apps a zaregistrujte si zdarma zkušební verzi Power Apps.
  • V tomto článku tvůrci odkazují na uživatele, kteří můžou používat funkci na každém konci spektra programovacích dovedností. Vývojáři odkazují na uživatele, pokud je funkce pokročilejší a je pravděpodobně nad rámec typického uživatele Excel.

Power Fx svazuje objekty dohromady pomocí deklarativních vzorců podobných tabulkovým procesorům. Představte si například vlastnost Viditelné ovládacího prvku uživatelského rozhraní jako buňku v listu aplikace Excel s přidruženým vzorcem, který vypočítá jeho hodnotu na základě vlastností jiných ovládacích prvků. Logika vzorce automaticky přepočítá hodnotu podobně jako tabulka, což ovlivní viditelnost ovládacího prvku.

Power Fx také v případě potřeby nabízí imperativní logiku. Listy obvykle nemají tlačítka, která mohou odesílat změny do databáze, ale aplikace často ano. Pro deklarativní i imperativní logiku se používá stejný výrazový jazyk.

Microsoft zpřístupní Power Fx jako opensourcový software. V současné době je integrovaná do aplikací plátna a Microsoft je v procesu extrakce z Power Apps pro použití v jiných produktech Microsoft Power Platform a jako open source. Další informace: Microsoft Power Fx na GitHubu

Tento článek je přehledem jazyka a jeho zásad návrhu. Další informace o Power Fx naleznete v následujících článcích:

Tabulka Think

Co kdybyste mohli vytvořit aplikaci tak snadno jako list v aplikaci Excel?

Co kdybyste mohli využít své stávající znalosti tabulkových procesorů?

Tyto otázky inspirovaly vytváření Power Apps a Power Fx. Stovky milionů lidí vytvářejí listy s Excel každý den. Přinesme jim vytváření aplikací, které je snadné a používá Excel koncepty, které už znají. Vyjmutím Power Fx mimo Power Apps na tyto otázky odpovíme v oblastech automatizace, virtuálního agenta nebo jiných domén.

Všechny programovací jazyky včetně Power Fx obsahují výrazy: způsob reprezentace výpočtu pracujícího s čísly, řetězci nebo jinými datovými typy. Například mass * acceleration ve většině jazyků vyjadřuje násobení mass a acceleration. Výsledek výrazu můžete vložit do proměnné, použít ho jako argument procedury nebo ho vnořit do většího výrazu.

Power Fx toto posouvá o krok dále. Samotný výraz neříká nic o tom, co počítá. Je na tvůrci, aby jej umístil do proměnné nebo předal funkci. V Power Fx namísto psaní výrazu, který nemá žádný konkrétní význam, napíšete vzorec, který sváže výraz s identifikátorem. Zapíšete force = mass * acceleration jako vzorec pro výpočet force. Jako mass nebo acceleration změny force se automaticky aktualizuje na novou hodnotu. Výraz popsal výpočet, vzorec dal tomuto výpočtu název a použil jej jako recept. To je důvod, proč Power Fx označujeme jako jazyk vzorců.

Například tento vzorec z přetečení zásobníku prohledá řetězec v opačném pořadí. V aplikaci Excel vypadá jako na následujícím obrázku.

Zpětné hledání

Snímek obrazovky řádku vzorců v aplikaci Excel se vzorcem: = RIGHT(A1,LEN (A1)- FIND ("|",SUBSTITUTE(A1," ","|", LEN(A1)-LEN(SUBSTITUTE(A1," ","")))) Buňka A1 obsahuje text "Hello, World! Rád vás poznávám!“ Buňka A2 obsahuje text „vy!“

Power Fx pracuje se stejným vzorcem, přičemž odkazy na buňky jsou nahrazeny odkazy na vlastnosti ovládacího prvku:

Zpětné hledání Power Fx.

Snímek obrazovky řádku vzorců Power Fx v Power Apps. Vzorec je =RIGHT(Input.Text,Len(Input.Text)- FIND("|", SUBSTITUTE(Input.Text," ","|", Len(Input.Text)-Len(Substitute(Input.Text," ","")))) V poli Vstup pod vzorcem je text "Hello, World! Je skvělé, že vás poznávám!“ se objevuje písmeno po písmenu. Zároveň se v poli Label (Popisek) zobrazí písmena posledního slova. Když se ve vstupním poli zobrazí celý text, slovo „you!“ se objevuje v poli Label.

Input Při změně Label hodnoty ovládacího prvku ovládací prvek vzorec automaticky přepočítá a zobrazí novou hodnotu. Nejsou k dispozici žádné obslužné rutiny události OnChange, jak by to bylo běžné v jiných jazycích.

Další příklad používá vzorec pro Fill barvu obrazovky. Jako posuvníky, které řídí červenou, zelenou a modrou změnu, se barva pozadí automaticky změní při přepočtu.

Posuvník barvy.

Pro ovládací prvky posuvníků barev neexistují žádné události OnChange, jak by to bylo běžné v jiných jazycích. Neexistuje žádný způsob, jak explicitně nastavit vlastnost Fill. Pokud barva nefunguje podle očekávání, musíte se podívat na tento jediný vzorec, abyste pochopili, proč nefunguje. Nemusíte v aplikaci hledat části kódu, která nastavuje vlastnost v neočekávaném čase; neexistuje žádný časový prvek. Správné hodnoty vzorce jsou vždy zachovány.

Jelikož jsou posuvníky nastaveny na tmavou barvu, popisky pro červenou, zelenou a modrou se změní na bílé kvůli kompenzaci. K této změně dochází prostřednictvím jednoduchého Color vzorce u vlastnosti pro každý ovládací prvek popisku.

Barevné posuvníky Power Fx.

Co je skvělé pro tento vzorec, je, že je izolovaný od toho, co se děje pro Fill barvu: jedná se o dva úplně odlišné výpočty. Místo velkých monolitických postupů se logika Power Fx obvykle skládá ze spousty menších vzorců, které jsou nezávislé. Tato struktura usnadňuje pochopení a umožňuje vylepšení bez narušení stávající logiky.

Power Fx je deklarativní jazyk, stejně jako Excel. Tvůrce definuje, jaké chování si přeje, ale je na systému, aby určil a optimalizoval, jak a kdy toho dosáhnout. Aby to bylo praktické, většina práce se provádí prostřednictvím čistých funkcí bez vedlejších účinků, což z Power Fx dělá také funkcionální jazyk (opět stejně jako Excel).

Vždy aktivní

Definujícím aspektem listů je, že jsou vždy živé a změny se projeví okamžitě. V listu není žádný režim kompilace ani spuštění. Když upravíte vzorec nebo zadáte hodnotu, list okamžitě přepočítá změny tak, aby odrážel změny. Všechny zjištěné chyby se zobrazí okamžitě a nezasahují do zbytku listu.

Power Fx implementuje totéž. Používá přírůstkový kompilátor k nepřetržité synchronizaci programu s daty, na které pracuje. Změny se automaticky šíří prostřednictvím grafu programu, což má vliv na výsledky závislých výpočtů. Tyto výpočty můžou řídit vlastnosti u ovládacích prvků, jako je barva nebo pozice. Přírůstkový kompilátor také poskytuje bohaté prostředí pro úpravy vzorců s technologií IntelliSense, návrhy, automatickým doplňováním a kontrolou typů.

V následující animaci se číslo objednávky zobrazí v ovládacím prvku popisku závislém na ovládacím prvku posuvníku, i když jsou pod nimi dvě chyby. Tato aplikace je velmi živá a interaktivní. První pokus o opravu vzorce zadáním .InvalidName má za následek okamžitou červenou čáru a zobrazí se chyba, jak by měla, ale aplikace běží dál.

Vždy aktivní.

Když zadáte .Employee, Data podokno přidá tabulku Zaměstnanci, načte metadata pro tuto tabulku a okamžitě nabídne návrhy pro sloupce. Právě jste prošli relaci z jedné tabulky do druhé a systém provedl potřebné úpravy odkazů aplikace. Totéž se děje při přidání .Customer.

Po každé změně posuvník pokračuje svou poslední hodnotou a všechny proměnné si zachovají svoji hodnotu. V celém průběhu se číslo objednávky bude dál zobrazovat v horním popisku, jak by mělo. Aplikace je živá, zpracovává reálná data po celou dobu. Můžete ho uložit, odejít a ostatní ho mohou otevřít a používat stejně jako Excel. Neexistuje žádný krok sestavení, žádná kompilace, existuje jenom krok publikování, který určí, která verze aplikace je připravená pro uživatele.

Minimum kódu

Power Fx popisuje obchodní logiku stručnými, ale přesto výkonnými vzorci. Většina logiky se zmenšuje na jednu čáru a má spoustu výraznosti a kontroly pro složitější potřeby. Cílem je udržet počet konceptů, kterým musí tvůrce rozumět, na minimu, v ideálním případě ne více, než by již znal uživatel aplikace Excel.

Chcete-li například vyhledat křestní jméno zaměstnance pro objednávku, napište kód Power Fx, jak ukazuje následující animace. Kromě konceptů aplikace Excel je zde jediným použitým konceptem zápis pomocí tečky „.“ pro procházení k podrobnostem do datové struktury, v tomto případě .Employee.'First Name'. Animace ukazuje mapování mezi částmi vzorce Power Fx a pojmy, které je třeba explicitně zakódovat v ekvivalentním JavaScriptu.

Minimální kód JavaScript.

Pojďme se podívat podrobněji na všechny věci, které power Fx dělá pro nás, a svobodu, kterou musí optimalizovat, protože vzorec je deklarativní:

  • Asynchronní Všechny datové operace v Power Fx jsou asynchronní. Tvůrce to nemusí specifikovat, ani nemusí synchronizovat operace po dokončení volání. Tvůrce nemusí tento koncept vůbec znát, nemusí vědět, co je příslib nebo funkce lambda.

  • Místní a vzdálené : Power Fx používá stejnou syntaxi a funkce pro data, která jsou lokálně uložena v paměti, a pro vzdálené připojení k databázi nebo službě. Uživatel nemusí na tento rozdíl myslet. Power Fx automaticky deleguje, co může, na server, aby tam efektivněji zpracovával filtry a třídil.

  • Relační data Objednávky a Zákazníci jsou dvě různé tabulky s relací mnoho k jedné. Dotaz OData vyžaduje „$expand“ se znalostí cizího klíče, podobně jako u funkce Join v SQL. Vzorec nemá nic z toho, ve skutečnosti jsou databázové klíče dalším konceptem, o kterém tvůrce nemusí vědět. Tvůrce může použít jednoduchý tečkový zápis pro přístup k celému grafu vztahů ze záznamu.

  • Projekce Při psaní dotazu mnoho vývojářů píše select * from table, což vrátí zpět všechny sloupce dat. Power Fx analyzuje všechny sloupce, které se používají v celé aplikaci, a to i napříč závislostmi vzorců. Projekce se automaticky optimalizuje a tvůrce opět nemusí vědět, co „projekce“ znamená.

  • Získejte pouze to, co je potřeba V tomto příkladu LookUp Funkce implikuje, že by měl být načten pouze jeden záznam a to je vše, co se vrátí. Pokud je požadováno více záznamů pomocí funkce Filter, která by mohla vrátit tisíce záznamů, vrátí se vždy pouze jedna stránka dat se zhruba 100 záznamy na stránku. Uživatel musí gestem procházet galerii nebo tabulku dat, aby viděl více dat, a automaticky pro ně přivádí další data. Tvůrce může uvažovat o velkých souborech dat, aniž by musel přemýšlet o omezení požadavků na data na zvládnutelné bloky.

  • Spustí se jenom v případě potřeby: Definujete vzorec pro Text vlastnost ovládacího prvku popisku. Když se vybraná proměnná změní, funkce LookUp se automaticky přepočítá a popisek se aktualizuje. Tvůrce nemusel pro výběr psát obslužný program OnChange a nemusel si pamatovat, že tento popisek je na něm závislý. Toto je deklarativní programování, jak bylo popsáno dříve: tvůrce specifikoval, co chce mít v popisku, a ne jak a kdy to má být načteno. Pokud tento popisek není viditelný, protože je na obrazovce, která není viditelná, nebo jeho Visible vlastnost je nepravda, můžete tento výpočet odložit, dokud nebude popisek viditelný a účinně ho vyloučí, pokud k tomu dojde zřídka.

  • Excel překlad syntaxe: Mnoho uživatelů ví, že ampersand (&) se používá pro zřetězení řetězců v Excel. JavaScript používá znaménko plus (+) a další jazyky používají tečku (.).

  • Zobrazované názvy a lokalizace : First Name se používá v Power Fx vzorec zatímco nwind_firstname se používá v ekvivalentu v JavaScriptu. V Microsoft Dataverse a SharePoint mají sloupce a tabulky zobrazovaný název kromě jedinečného logického názvu. Zobrazované názvy jsou často mnohem uživatelsky přívětivější, jako v tomto případě, ale mají další důležitou vlastnost, že je lze lokalizovat. Pokud máte vícejazyčný tým, může každý člen týmu vidět názvy tabulek a polí ve svém vlastním jazyce. Ve všech případech použití Power Fx zajišťuje, že se do databáze automaticky odesílá správný logický název.

Bez kódu

Abyste mohli začít vyjádřit logiku, nemusíte číst ani psát Power Fx. Mnoho přizpůsobení a logiky můžete vyjádřit jednoduchými přepínači a tvůrci uživatelského rozhraní. Tyto nástroje bez kódu jsou sestaveny pro čtení a zápis Power Fx, takže je k dispozici spousta prostor pro další použití. Nástroje bez kódu ale nikdy nenabízely všechny výrazy celého jazyka. I když používáte tvůrce bez kódu, řádek vzorců je přední a středem v Power Apps, aby mohl informovat tvůrce o tom, co za něj dělá, aby se mohli začít učit Power Fx.

Podívejme se na některé příklady. V Power Apps poskytuje panel vlastností přepínače a ovladače „bez kódu“ pro vlastnosti ovládacích prvků. V praxi je většina hodnot vlastností statická. Pomocí nástroje pro tvorbu barev můžete změnit barvu pozadí ovládacího prvku Gallery. Všimněte si, že řádek vzorců odráží tuto změnu a aktualizuje vzorec na jiné volání RGBA. Kdykoli můžete přejít na řádek vzorců a provést tuto změnu ještě dál – v tomto příkladu pomocí ColorFade úprav barvy. Vlastnost barvy se stále zobrazuje na panelu vlastností, ale při najetí myši se zobrazí ikona fx a budete přesměrováni do řádku vzorců. To plně funguje dvěma způsoby: odebrání volání ColorFade vrátí barvu něčemu, čemu rozumí panel vlastností, a můžete jej znovu použít k nastavení barvy.

Barva bez kódu.

Zde je složitější příklad. Galerie zobrazuje seznam zaměstnanců z Dataverse. Dataverse poskytuje zobrazení dat tabulky. Můžete vybrat jedno z těchto zobrazení a vzorec se změní tak, aby používal Filter funkci s tímto názvem zobrazení. Pomocí dvou rozevíracích nabídek můžete vytočit správnou tabulku a zobrazení, aniž byste se museli dotýkat řádku vzorců. Ale řekněme, že chcete jít dál a přidat řazení. Tuto funkci můžete přidat do řádku vzorců a na panelu vlastností se znovu zobrazí ikona fx a nasměruje úpravy na řádek vzorců. A znovu, pokud zjednodušíte vzorec na něco, co panel vlastností může číst a zapisovat, můžete ho použít.

Třídění bez kódu.

Tyto příklady jsou jednoduché. Power Fx je skvělý jazyk pro popis interakcí bez kódu. Je to stručné, výkonné a snadné parsování. Poskytuje místnost, která je tak často potřebná bez útesů až do nízkého kódu.

Profesionální kód

Tvůrci s nízkým kódem někdy vytvářejí řešení, která vyžadují pomoc odborníka nebo jsou převzaty profesionálním vývojářem, aby ho udržoval a vylepšil. Profesionálové také oceňují, že vývoj s minimem kódu může být jednodušší, rychlejší a méně nákladný než vytváření profesionálního nástroje. Ne každá situace vyžaduje plný výkon aplikace Visual Studio.

Profesionálové chtějí používat profesionální nástroje, aby byli maximálně produktivní. Vzorce Power Fx můžete ukládat do zdrojových souborů YAML, které se dají snadno upravovat pomocí Visual Studio Code, Visual Studio nebo jiného textového editoru. Ukládání vzorců v souborech YAML umožňuje umístit Power Fx pod správu zdrojového kódu pomocí GitHub, Azure DevOps nebo jakéhokoli jiného systému správy zdrojového kódu.

Profesionální kód ve Visual Studio Code.

Profesionální kód GitHub.

Power Fx podporuje komponenty založené na vzorcích pro sdílení a opětovné použití. Podporuje parametry vlastností komponent, což umožňuje vytváření čistě uživatelem definovaných funkcí s dalšími vylepšeními.

Power Fx je také skvělý při spojování komponent a služeb vytvořených profesionály. Předefinované konektory poskytují přístup ke stovkám zdrojů dat a webovým službám. Vlastní konektory umožňují Power Fx komunikovat s jakoukoli webovou službou REST. Komponenty kódu umožňují Power Fx pracovat s plně vlastním JavaScriptem na obrazovce a stránce.

Zásady návrhu

Jednoduchost

Power Fx je navržený tak, aby cílil na cílovou skupinu tvůrce, jejíž členové nejsou vyškoleni jako vývojáři. Jazyk všude, kde je to možné, používá znalosti, které už tato cílová skupina ví nebo může rychle vyzvednout. Počet konceptů potřebných k úspěchu je omezen na minimum.

Jednoduchost je dobrá také pro vývojáře. Pro cílovou skupinu vývojářů je Power Fx jazykem s nízkým kódem, který zkracuje čas potřebný k vytvoření řešení.

Podobnost s Excelem

Jazyk Microsoft Power Fx si hodně půjčuje z jazyka vzorců aplikace Excel. Využívá Excel znalosti a zkušenosti od mnoha tvůrců, kteří také používají Excel. Sémantika typů, operátorů a funkcí je co nejpodobnější Excelu.

Pokud Excel odpověď nemá, Power Fx se vedle toho podívá na SQL. Po Excelu je SQL dalším nejčastěji používaným deklarativním jazykem a může poskytnout řešení datových operací a silného typování, což Excel neumí.

Deklarativní

Tvůrce popisuje, co chce, aby jeho logika dělala, a ne tak úplně jak nebo kdy to má udělat. Tento přístup umožňuje kompilátoru optimalizovat prováděním operací paralelně, odložením práce až do potřeby a před načtením a opětovným použitím dat uložených v mezipaměti.

Například v Excel listu autor definuje vztahy mezi buňkami, ale Excel rozhoduje, kdy a v jakém pořadí se mají vzorce vyhodnotit. Podobně si můžete vzorce v aplikaci představit jako "přepočítávání" podle potřeby na základě uživatelských akcí, změn databáze nebo událostí časovače.

Funkčnost

Používejte čisté funkce, které nemají vedlejší účinky. Výsledkem tohoto přístupu je logika, která je srozumitelnější a dává kompilátoru největší volnost při optimalizaci.

Na rozdíl od Excel aplikace podle své povahy dělají ztlumený stav. Aplikace mají například tlačítka, která ukládají změny záznamu v databázi. Některé funkce, proto mají vedlejší účinky, i když omezit tyto vedlejší účinky tak, jak je praktické.

Skládání

Pokud je to možné, přidejte funkce, které dobře kompozičují s existujícími funkcemi. Výkonné funkce můžete rozkládat do menších částí, které můžete snadněji používat nezávisle.

Například ovládací prvek Galerie nemá samostatné vlastnosti Sort a Filter. Místo toho vytvoříte Sort funkce a Filter funkce společně do jedné Items vlastnosti. Vy vrstvíte uživatelské rozhraní pro vyjádření Sort a Filter chování nad Items vlastnost pomocí obousměrného editoru pro tuto vlastnost.

Silná typová kontrola

Typy všech hodnot jsou známy v době kompilace. Tento přístup umožňuje včasnou detekci chyb a bohatých návrhů při vytváření.

Polymorfní typy jsou podporované, ale než je budete moct použít, musíte jejich typ připnout na statický typ a tento typ musí být znám v době kompilace. Funkce IsType a AsType jsou k dispozici pro typy testování a přetypování.

Odvození typu

Typy jsou odvozeny z jejich použití, aniž by byly deklarovány. Například nastavení proměnné na číslo způsobí, že se typ proměnné vytvoří jako číslo.

Konfliktní použití typu vede k chybě při kompilaci.

Oddělovače desetinných míst podle národního prostředí

V některých oblastech se jako oddělovač desetinných míst používá tečka (.), zatímco v jiných čárka (,). Excel se řídí touto regionální konvencí. Ostatní programovací jazyky obecně používají kanonický tečka (.) jako oddělovač desetinných míst pro všechny uživatele po celém světě. Pro co největší přístupnost pro tvůrce na všech úrovních je důležité, že 3,14 je desetinné číslo pro osobu ve Francii, která tuto syntaxi používá celý svůj život.

Volba desetinného oddělovače má kaskádový dopad na oddělovač seznamu, který se používá pro argumenty volání funkcí, a operátor řetězení.

Oddělovač desetinných míst jazyka tvůrce Oddělovač desetinných míst Power Fx Oddělovač seznamu Power Fx Operátor řetězení Power Fx
, (tečka) , (tečka) , (čárka) ; (středník)
, (čárka) , (čárka) ; (středník) ;; (dvojitý středník)

Další informace: Globální podpora

Jazyk, který není objektově orientovaný

Excel není objektově orientovaný, a takový není ani Power Fx. Například v některých jazycích je délka řetězce vyjádřena jako vlastnost řetězce, například "Hello World".length v jazyce JavaScript. Excel a Power Fx to vyjádří pomocí funkce jako Len( "Hello World" ).

Komponenty s vlastnostmi a metodami jsou objektově orientované a kód Power Fx s nimi snadno pracuje. Pokud je to ale možné, upřednostněte funkční přístup.

Rozšiřitelný

Tvůrci mohou vytvářet své komponenty a funkce pomocí samotného Power Fx. Vývojáři mohou vytvářet své komponenty a funkce zápisem kódu JavaScript.

Přátelský pro vývojáře

I když jsou tvůrci primárním cílem, snažte se být přátelští pro vývojáře všude, kde je to možné. Pokud není v konfliktu s principy návrhu popsanými výše, udělejte věci způsobem, který vývojář ocení. Například Excel nemá možnost přidávat komentáře, takže používejte řádky podobné C a vložené komentáře.

Vývoj jazyka

Vývoj programovacích jazyků je jak nutný, tak složitý. Každý je oprávněně znepokojen, že změna, bez ohledu na to, jak dobře je zamýšlená, může narušit stávající kód a vyžadovat, aby se uživatelé naučili nový vzor. Power Fx bere zpětnou kompatibilitu vážně, ale tým Power Fx také pevně věří, že nebude mít vždy správný čas a že komunita se může souhrnně naučit, co je nejlepší. Programovací jazyk se musí vyvíjet a Power Fx byl navržen tak, aby podporoval vývoj jazyků od samého začátku.

Každý uložený dokument Power Fx obsahuje razítko jazykové verze. Pokud tým Power Fx chce provést nekompatibilní změnu, napíše to, co nazývá "back compat converter", který automaticky přepíše vzorec při příští úpravě. Pokud je změna něco hlavního, o čem tým potřebuje informovat uživatele, aplikace zobrazí zprávu s odkazem na dokumentaci. Díky tomuto zařízení může Power Fx stále načítat aplikace vytvořené s verzemi Preview Power Apps z mnoha let, i když se od té doby vyskytly všechny změny.

Například tým Power Fx představil ShowError funkci, aby zobrazil banner s chybou s červeným pozadím.

Zobrazení chyby.

Uživatelé to milovali, ale také požádali o způsob, jak zobrazit banner úspěchu (zelené pozadí) nebo informační banner (modré pozadí). Tým tedy přišel s obecnější Notify funkcí, která přebírá druhý argument pro druh oznámení. Tým mohl právě přidat Notify a udržet ShowError to tak, jak to bylo, ale místo toho nahradili ShowErrorNotify. Odebrali funkci, která byla dříve v produkčním prostředí, a nahradila ji něčím jiným. Vzhledem k tomu, že by stejnou věc bylo možné provést dvěma způsoby, tato změna by způsobila nejasnost – zejména pro nové uživatele – a co je nejdůležitější, bylo by to složitější. Nikdo si nestěžoval, všichni ocenili změnu a začali používat novou funkci Notify.

Takto vypadá stejná aplikace po načtení do nejnovější verze Power Apps. Aby se tato transformace uskutečnila, uživatel nemusel provést žádnou akci, došlo k ní automaticky při otevření aplikace.

Funkce Notify nahradila funkci ShowError.

Díky tomuto zařízení se Power Fx může rychleji a agresivněji vyvíjet než většina programovacích jazyků.

Žádná nedefinovaná hodnota

Některé jazyky, například JavaScript, používají koncept nedefinované hodnoty pro neinicializované proměnné nebo chybějící vlastnosti. Kvůli jednoduchosti se Power Fx tomuto konceptu vyhne. Instance, které by byly nedefinované v jiných jazycích, jsou považovány za chybu nebo prázdnou hodnotu. Například všechny neinicializované proměnné začínají prázdnou hodnotou. Nedefinovanou hodnotu mohou nabývat všechny datové typy.

Datové typy
Operátory a identifikátory
Stoly
Proměnné
Imperativní logika
Globální podpora
Výrazová gramatika
Gramatika vzorců YAML
Vzorce v aplikacích plátna