Oversikt over Microsoft Power Fx

Power Fx er lavkodespråket som Microsoft Power Platform bruker. Det er et generelt, sterkt skrevet, deklarativt og funksjonelt programmeringsspråk.

Power Fx uttrykkes i menneskevennlig tekst. Det er et lavkodespråk som amatørutviklere kan arbeide med direkte i en Excel-liknende formellinje eller i et Visual Studio Code-tekstvindu. Den "lave" i lavkode kommer fra den konsise og enkle naturen til språket, noe som gjør vanlige programmeringsoppgaver enkle for både beslutningstakere og utviklere. Det muliggjør hele spekteret av utvikling fra no-code for de som aldri programmert før til "pro-code" for den erfarne profesjonelle, uten å lære eller omskrive klipper i mellom. Ulike team kan samarbeide og spare tid og utgifter.

Merk

  • Microsoft Power Fx er det nye navnet på formelspråket for lerretsapper i Power Apps. Denne oversikten og tilknyttede artikler er et arbeid som pågår når Microsoft trekker ut språket fra lerretsapper, integrerer det med andre Microsoft Power Platform produkter og gjør det tilgjengelig som åpen kilde. Hvis du vil vite mer om og oppleve språket i dag, kan du begynne med Kom i gang med formler i lerretsapper i Power Apps-dokumentasjonen og registrere deg for en prøveversjon av Power Apps.
  • I denne artikkelen refererer beslutningstakere til brukere som kan bruke en funksjon i hver ende av programmeringsferdighetsspekteret. Utviklere refererer til brukere når funksjonen er mer avansert og sannsynligvis utenfor omfanget til en vanlig Excel bruker.

Power Fx binder objekter sammen med deklarative, regnearklignende formler. Tenk for eksempel på egenskapen Synlig for en brukergrensesnittkontroll som en celle i et Excel-regneark, med en tilknyttet formel som beregner verdien basert på egenskapene til andre kontroller. Formellogikken beregner verdien automatisk på nytt, på samme måte som et regneark, noe som har innvirkning på synligheten for kontrollen.

Power Fx byr også på imperativ logikk ved behov. Regneark har vanligvis ikke knapper som kan sende endringer til en database, men apper gjør ofte det. Det samme uttrykksspråket brukes til både deklarativ og imperativ logikk.

Microsoft gjør Power Fx tilgjengelig som åpen kildekode-programvare. Den er for øyeblikket integrert i lerretsapper, og Microsoft er i ferd med å trekke den ut fra Power Apps for bruk i andre Microsoft Power Platform produkter og som åpen kilde. Mer informasjon: Microsoft Power Fx på GitHub

Denne artikkelen gir en oversikt over språket og utformingsprinsippene. Hvis du vil vite mer om Power Fx, kan du se følgende artikler:

Tenk regneark

Hva om du kan bygge en app så enkelt som du bygger et regneark i Excel?

Hva om du kan dra nytte av eksisterende regnearkkunnskaper?

Disse spørsmålene inspirerte opprettelsen av Power Apps og Power Fx. Hundrevis av millioner mennesker oppretter regneark med Excel hver dag. La oss gi dem appopprettelse som er enkel og bruker Excel konsepter som de allerede kjenner. Når vi trekker Power Fx ut av Power Apps, svarer vi på disse spørsmålene om bygging av automatisering eller en virtuell agent eller andre domener.

Alle programmeringsspråk, inkludert Power Fx, har uttrykk: en måte å representere en beregning på som omfatter tall, strenger eller andre datatyper. På de fleste språk uttrykker for eksempel mass * acceleration multiplikasjon av mass og acceleration. Du kan plassere resultatet av et uttrykk i en variabel, bruke det som et argument til en prosedyre eller neste det i et større uttrykk.

Power Fx tar dette et trinn videre. Et uttrykk i seg selv sier ingenting om hva det beregner. Det er opp til amatørutvikleren å plassere det i en variabel eller sende det til en funksjon. I stedet for bare å skrive et uttrykk uten noen bestemt mening, skriver du i Power Fx en formel som binder uttrykket til en identifikator. Du skriver force = mass * acceleration som en formel for beregning av force. Som mass eller acceleration endrer, force oppdateres automatisk til en ny verdi. Uttrykket beskrev en beregning, en formel som gav beregningen et navn og brukte den som en betegnelse. Det er derfor vi kaller Power Fx et formelspråk.

Eksempelvis søker denne formelen fra Stakkoverflyt en streng i omvendt rekkefølge. I Excel ser det ut som følgende bilde.

Søk i omvendt rekkefølge

Skjermbilde av en formellinje i Excel med formelen: =RIGHT(A1,LEN(A1)- FIND("|", SUBSTITUTE(A1," ","|", LEN(A1)-LEN(SUBSTITUTE(A1," ","")))) Celle A1 inneholder teksten «Hei, verden! Det er flott å hilse på deg!" Celle A2 inneholder teksten "du!"

Power Fx fungerer med samme formel, der cellereferansene erstattes med kontrollegenskapsreferanser:

Power Fx-søk i omvendt rekkefølge.

Skjermbilde av en Power Fx-formellinje i Power Apps. Formelen er =RIGHT(Input.Text,Len(Input.Text)- FIND("|", SUBSTITUTE(Input.Text," ","|", Len(Input.Text)-Len(Substitute(Input.Text," ","")))) I inndataboksen under formelen vises teksten «Hei, verden! Det er flott å hilse på deg!» vises, bokstav for bokstav. Samtidig vises bokstavene i det siste ordet i Etikett-boksen. Når hele teksten vises i Inndata-boksen, vises orden "du!" vises i Etikett-boksen.

Input Når kontrollverdien endres, Label beregner kontrollen automatisk formelen på nytt og viser den nye verdien. Det finnes ikke OnChange-hendelsesbehandling her, som ville vært vanlig på andre språk.

Et annet eksempel bruker en formel for Fill fargen på skjermen. Etter hvert som glidebryterne som styrer Rød, Grønn og Blå endres, endres bakgrunnsfargen automatisk etter hvert som den beregnes på nytt.

Glidebryter for farge.

Det finnes ingen OnChange-hendelser for glidebryterkontrollene, som er vanlig på andre språk. Det finnes ingen metode for eksplisitt å angi Fill-egenskapsverdien. Hvis fargen ikke fungerer som forventet, må du se på denne formelen for å finne ut hvorfor den ikke fungerer. Du trenger ikke søke gjennom appen for å finne en kodebit som angir egenskapen på et uventet tidspunkt. Det er ikke noe tidselement. De riktige formelverdiene vedlikeholdes alltid.

Når glidebryterne er satt til en mørk farge, endres etikettene for rød, grønn og blå til hvit for å kompensere. Denne endringen skjer gjennom en enkel formel på Color egenskapen for hver etikettkontroll.

Power Fx-glidebrytere for farger.

Det som er flott med denne formelen er at den Fill er isolert fra det som skjer for fargen: dette er to helt forskjellige beregninger. Power Fx-logikk består vanligvis av mange mindre, uavhengige formler i stedet for store, monolittiske prosedyrer. Denne strukturen gjør dem enklere å forstå og muliggjør forbedringer uten å forstyrre eksisterende logikk.

Power Fx er et deklarativt språk, akkurat som Excel. Amatørutvikleren definerer ønsket virkemåte, men det er opp til systemet å avgjøre og optimalisere hvordan og når det skal oppnå det. For å gjøre dette praktisk blir det meste av arbeidet gjort med rene funksjoner uten sideeffekter, slik at Power Fx også er et funksjonelt språk (også som Excel).

Alltid aktive

En definerende side ved regneark er at de alltid er aktive, og endringer gjenspeiles umiddelbart. Det finnes ingen kompilerings- eller kjøremodus i et regneark. Når du endrer en formel eller skriver inn en verdi, beregnes regnearket umiddelbart på nytt for å gjenspeile endringene. Eventuelle oppdagede feil oppstår umiddelbart og forstyrrer ikke resten av regnearket.

Power Fx implementerer det samme. Den bruker en trinnvis kompilator til å kontinuerlig holde programmet synkronisert med dataene det opererer på. Endringer overføres automatisk gjennom programmets graf, noe som påvirker resultatene av avhengige beregninger. Disse beregningene kan drive egenskaper på kontroller som farge eller plassering. Den trinnvise kompilatoren gir også en rik redigeringsopplevelse for formel med IntelliSense, forslag, autofullføring og typekontroll.

I følgende animasjon vises ordrenummeret i en etikettkontroll avhengig av glidebryteren, selv om det er to feil på etikettene under den. Appen er direkte og interaktiv. Det første forsøket på å rette formelen ved å angi .InvalidName resulterer i en umiddelbar rød linje og en feil, men appen kjører fortsatt.

Alltid direkte.

Når du skriver inn .Employee, Data legger ruten til Ansatte-tabellen, henter metadata for denne tabellen og gir umiddelbart forslag til kolonner. Du bare gikk over en relasjon fra én tabell til en annen, og systemet gjorde de nødvendige justeringene i appens referanser. Det samme skjer når du legger til en .Customer.

Etter hver endring fortsetter glidebryteren med den siste verdien, og eventuelle variabler beholder verdien. I hele rekkefølgen fortsetter ordrenummeret å vises i den øverste etiketten slik den skal. Appen er live, behandler reelle data, hele tiden. Du kan lagre den, gå bort og andre kan åpne og bruke den akkurat som Excel. Det er ikke noe byggetrinn, ingen kompilering, det er bare et publiseringstrinn for å finne ut hvilken versjon av appen som er klar for brukere.

Lavkodebasert

Power Fx beskriver forretningslogikk i kortfattede, men likevel kraftige, formler. De fleste logikker reduseres til én enkelt linje, med mye uttrykksevne og kontroll for mer komplekse behov. Målet er å holde antallet konsepter en beslutningstaker må forstå på et minimum, ideelt sett ikke mer enn en Excel-bruker allerede vet.

Hvis du for eksempel vil slå opp fornavnet på en ansatt for en ordre, skriver du Power Fx-koden som vist i animasjonen nedenfor. I tillegg til Excel-konsepter er det eneste konseptet som brukes her, punktnotasjonen «.» for å drille ned i en datastruktur, i dette tilfellet .Employee.'First Name'. Animasjonen viser tilordningen mellom delene av Power Fx-formelen og konseptene som må kodes eksplisitt i et tilsvarende JavaScript.

Lavkodebasert JavaScript.

La oss se mer dyptgående på alt power fx gjør for oss og friheten den har til å optimalisere fordi formelen er deklarativ:

  • Asynkron: Alle dataoperasjoner i Power Fx er asynkrone. Amatørutvikleren trenger ikke å angi dette og heller ikke å synkronisere operasjoner etter at oppkallet er over. Amatørutvikleren trenger ikke å være klar over dette konseptet i det hele tatt og ikke å vite hva en forkortings- eller lambda-funksjon er.

  • Lokal og ekstern: Power Fx bruker samme syntaks og funksjoner for data som er lokale i minnet og kobler til en database eller tjeneste eksternt. Brukeren trenger ikke tenke på dette skillet. Power Fx delegerer så mye som mulig til serveren automatisk for å behandle filtre og sortering mer effektivt der.

  • Relasjonsdata: Ordrer og Kunder er to forskjellige tabeller, med en mange-til-én-relasjon. OData-spørringen krever en "$expand" med kunnskap om sekundærnøkkelen, på samme måte som en sammenslåing i SQL. Formelen har ingenting av dette. Databasenøkler er faktisk et annet konsept som amatørutvikleren ikke trenger å vite om. Produsenten kan bruke enkel punktnotasjon for å få tilgang til hele grafen over relasjoner fra oppføringer.

  • Projeksjon: Når du skriver en spørring, skriver select * from table mange utviklere, noe som bringer tilbake alle kolonnene med data. Power Fx analyserer alle kolonnene som brukes gjennom hele appen, også på tvers av formelavhengigheter. Projeksjon optimaliseres automatisk, og amatørutvikleren trenger heller ikke her å vite hva "projeksjon" betyr.

  • Hent bare det som trengs: I dette eksemplet innebærer funksjonen LookUp at bare én post skal hentes, og det er alt som returneres. Hvis flere oppføringer forespørres ved å bruke Filter-funksjonen, som tusener av oppføringer kan kvalifisere for, returneres bare én enkelt side med data om gangen, i en rekkefølge på 100 oppføringer per side. Brukeren må bevege seg gjennom et galleri eller en datatabell for å se flere data, og den henter automatisk inn mer data for dem. Amatørutvikleren kan få mening med store datasett uten å måtte tenke på å begrense dataforespørsler til håndterbare biter.

  • Kjører bare når det er nødvendig: Du definerer en formel for egenskapen til Text etikettkontrollen. Etter hvert som den valgte variabelen endres, beregnes LookUp automatisk på nytt, og etiketten oppdateres. Amatørutvikleren hadde ikke behov for å skrive en OnChange-behandler for utvelgelse, og trengte ikke å huske at denne etiketten er avhengig av den. Dette er deklarativ programmering, som nevnt tidligere, og amatørutvikleren har angitt hva de vil ha i etiketten, ikke hvordan eller når den skal hentes. Hvis denne etiketten ikke er synlig fordi den er på en skjerm som ikke er synlig, eller Visible egenskapen er usann, kan du utsette denne beregningen til etiketten er synlig og effektivt eliminere den hvis det sjelden skjer.

  • Excel syntaksoversettelse: Mange brukere vet at &sand (&) brukes til strengsammenkobling i Excel. JavaScript bruker et plusstegn (+), og andre språk bruker et punktum (.).

  • Visningsnavn og lokalisering: First Name brukes i formelen Power Fx mens nwind_firstname den brukes i JavaScript-ekvivalenten. I Microsoft Dataverse og SharePoint finnes det et visningsnavn for kolonner og tabeller i tillegg til et unikt logisk navn. Visningsnavnene er ofte mye mer brukervennlige, som i dette tilfellet, men de har en annen viktig kvalitet ved at de kan lokaliseres. Hvis du har et flerspråklig team, kan hvert teammedlem se tabell- og feltnavn på sitt eget språk. I alle brukstilfeller sørger Power Fx for at riktig logisk navn sendes til databasen automatisk.

Kodeløs

Du trenger ikke å lese eller skrive Power Fx for å begynne å uttrykke logikk. Du kan uttrykke mange tilpasninger og logikk gjennom enkle brytere og grensesnittbyggere. Disse verktøyene uten kode er bygget for å lese og skrive Power Fx, så det er nok av takhøyde for noen å ta det videre. Men ingen kodeverktøy tilbyr aldri all uttrykksevnen til hele språket. Selv når du bruker verktøy uten kode, er formellinjen foran og midtstilt i Power Apps for å lære skaperen om hva som gjøres på deres vegne, slik at de kan begynne å lære Power Fx.

La oss se på noen eksempler. I Power Apps byr egenskapspanelet på kodeløse brytere og knapper for egenskapene til kontrollene. I praksis er de fleste egenskapsverdier statiske. Du kan bruke fargeverktøyet til å endre bakgrunnsfargen i Gallery. Legg merke til at formellinjen gjenspeiler denne endringen og oppdaterer formelen til et annet RGBA-oppkall. Når som helst kan du gå til formellinjen og ta denne endringen et skritt videre – i dette eksemplet, ved å bruke ColorFade til å justere fargen. Fargeegenskapen vises fremdeles i egenskapspanelet, men et fx-ikon vises når du peker på det med musen og det føres til formellinjen. Dette fungerer helt på to måter: Når du fjerner ColorFade-anropet, returneres fargen til noe egenskapspanelet kan forstå, og du kan bruke det på nytt for å angi en farge.

Ingen kodefarge.

Her er et mer komplisert eksempel. Galleriet viser en liste over ansatte fra Dataverse. Dataverse inneholder visninger over tabelldata. Du kan velge én av disse visningene, og formelen endres for å bruke Filter funksjonen med dette visningsnavnet. Du kan bruke de to rullegardinmenyene til å ringe inn riktig tabell og vise uten å berøre formellinjen. Men la oss si at du vil gå videre og legge til en sortering. Du kan legge til denne funksjonen på formellinjen, og egenskapspanelet viser igjen et fx-ikon og dirigerer endringer på formellinjen. Og igjen, hvis du forenkler formelen til noe egenskapspanelet kan lese og skrive, kan den brukes.

Kodeløs sortering.

Disse eksemplene er enkle. Power Fx er et flott språk for å beskrive samhandlinger uten kode. Det er konsis, kraftig og lett å analysere. Det gir takhøyde som er så ofte nødvendig med "ingen klipper" opp til lav-kode.

Pro-kode

Lavkodeutviklere bygger noen ganger løsninger som krever hjelp fra en ekspert eller blir overtatt av en profesjonell utvikler for å vedlikeholde og forbedre. Fagpersoner setter også pris på at utvikling av lav kode kan være enklere, raskere og rimeligere enn å bygge et profesjonelt verktøy. Ikke alle situasjoner krever full effekt av Visual Studio.

Profesjonelle ønsker å bruke profesjonelle verktøy for å være mest mulig produktive. Du kan lagre Power Fx-formler i YAML-kildefiler, som er enkle å redigere ved hjelp av Visual Studio Code, Visual Studio eller et annet tekstredigeringsprogram. Ved å lagre formler i YAML-filer kan du sette Power Fx under kildekontroll ved hjelp av GitHub, Azure DevOps eller andre kontrollsystem for kildekode.

Pro-kodebasert Visual Studio Code.

Prokodebasert GitHub.

Power Fx støtter formelbaserte komponenter til deling og gjenbruk. Den støtter parametere for komponentegenskaper, noe som muliggjør oppretting av rene brukerdefinerte funksjoner med flere forbedringer på vei.

Power Fx er også utmerket til å sette sammen komponenter og tjenester bygd av profesjonelle. Out-of-the-box-koblinger gir tilgang til hundrevis av datakilder og nettjenester. Egendefinerte koblinger gjør det mulig for Power Fx å snakke med en REST-nettjeneste. Kodekomponenter gjør det mulig for Power Fx å samhandle med fullt egendefinert JavaScript på skjermen og siden.

Utformingsprinsipper

Enkelt

Power Fx er utformet for å målrette mot oppretterens målgruppe, hvis medlemmer ikke er opplært som utviklere. Der det er mulig, bruker språket kunnskap som denne målgruppen allerede kjenner eller kan plukke opp raskt. Antallet konsepter som kreves for å lykkes, holdes på et minimum.

Å være enkel er også bra for utviklere. For utviklergruppen har Power Fx som mål å være et lavkodespråk som reduserer tiden det tar å bygge en løsning.

Excel-konsekvens

Microsoft Power Fx-språk låner i stor grad av Excel-formelspråket. Det drar nytte av Excel kunnskap og erfaring fra de mange beslutningstakere som også bruker Excel. Typer, operatorer og funksjon-semantikk er så nær Excel som mulig.

Hvis Excel ikke har noe svar, ser Power Fx neste til SQL. Etter Excel er SQL det nest mest brukte deklarasjonsspråket og kan gi veiledning for dataoperasjoner og sterke datatyper som Excel ikke gjør.

Forklarende

Amatørutvikleren beskriver hva de vil at logikken skal gjøre, ikke nøyaktig hvordan eller når det skal gjøres. Denne fremgangsmåten gjør det mulig for kompilatoren å optimalisere ved å utføre operasjoner parallelt, utsette arbeidet til det er nødvendig, og prefetching og gjenbruk av bufrede data.

I et Excel regneark definerer forfatteren for eksempel relasjonene mellom celler, men Excel bestemmer når og i hvilken rekkefølge formler skal evalueres. På samme måte kan du tenke på formler i en app som «omberegning» etter behov basert på brukerhandlinger, databaseendringer eller tidtakerhendelser.

Funksjonelt

Bruk rene funksjoner som ikke har bivirkninger. Denne tilnærmingen resulterer i logikk som er enklere å forstå og gir kompilatoren mest frihet til å optimalisere.

I motsetning til Excel muterer apper etter sin natur tilstanden. Apper har for eksempel knapper som lagrer endringer i posten i en database. Noen funksjoner har derfor bivirkninger, men begrenser disse bivirkningene like mye som det er praktisk.

Sammensetning

Der det er mulig, kan du legge til funksjonalitet som fungerer bra med eksisterende funksjonalitet. Du kan dekomponere kraftige funksjoner i mindre deler som du lettere kan bruke uavhengig av hverandre.

En Galleri-kontroll har for eksempel ikke separate Sort- og Filter-egenskaper. I stedet kan du skrive Sort sammen funksjonene og Filter funksjonene til én enkelt Items egenskap. Du legger grensesnittet for uttrykk Sort og Filter virkemåte oppå egenskapen ved hjelp av Items et toveis redigeringsprogram for denne egenskapen.

Sterkt skrevet inn

Alle verditypene er kjent på kompileringstidspunktet. Denne fremgangsmåten gjør det mulig for tidlig gjenkjenning av feil og rike forslag under redigering.

Polymorfe typer støttes, men før du kan bruke dem, må du feste typen til en statisk type, og denne typen må være kjent på kompileringstidspunktet. Funksjonene IsType og AsType er tilgjengelige for testing og utprøving av typer.

Typeutledning

Typene avledes av bruken uten at de deklareres. Hvis du for eksempel angir en variabel til et tall, fører dette til at variabelens type blir opprettet som et tall.

Motstridende typebruk fører til en kompileringstidsfeil.

Skilletegn for nasjonale skilletegn for desimaler

Enkelte områder i verden bruker punktum (.) som et desimalskilletegn, mens andre bruker et komma (,). Excel følger denne regionale konvensjonen. Andre programmeringsspråk bruker vanligvis en kanonisk prikk (.) som desimalskilletegn for alle brukere over hele verden. For å være så imøtekommende som mulig for amatørutviklere på alle nivåer, er det viktig at 3,14 er et desimaltall for en person i Frankrike som har brukt denne syntaksen hele livet.

Valget av desimalskilletegn har en overlappende innvirkning på listeskilletegnet, som brukes for funksjonskallargumenter og sammenkjedingsoperatoren.

Desimalskilletegn på forfatterens språk Power Fx-desimalskilletegn Power Fx-listeskilletegn Power Fx-sammenkjedingsoperator
. (punktum) . (punktum) , (komma) ; (semikolon)
, (komma) , (komma) ; (semikolon) ;; (dobbelt semikolon)

Mer informasjon: Global kundestøtte

Ikke objektorientert

Excel er ikke objektorientert, og det er heller ikke Power Fx. På enkelte språk er for eksempel lengden av en streng uttrykt som en egenskap for strengen, for eksempel "Hello World".length i JavaScript. Excel og Power Fx uttrykker i stedet dette i form av en funksjon som Len( "Hello World" ).

Komponenter med egenskaper og metoder er objektorientert, og Power Fx fungerer enkelt med dem. Men der det er mulig, foretrekker du en funksjonell tilnærming.

Utvidbart

Amatørutviklere kan lage egne komponenter og funksjoner med selve Power Fx. Utviklere kan lage komponentene og funksjonene sine ved å skrive JavaScript.

Utvikler-vennlig

Selv om beslutningstakere er det primære målet, kan du prøve å være utviklervennlig der det er mulig. Hvis det ikke er i konflikt med utformingsprinsippene som er beskrevet tidligere, gjør du ting på en måte som en utvikler setter pris på. Excel har for eksempel ingen mulighet til å legge til kommentarer, så bruk C-lignende linje- og linjebundne kommentarer.

Språkutvikling

Det er både nødvendig og vanskelig å utvikle programmeringsspråk. Alle er urolige – med god grunn – for at en endring, uansett hvor velmenende den er, kan ødelegge eksisterende kode og kreve at brukerne lærer et nytt mønster. Power Fx tar bakoverkompatibilitet på alvor, men Power Fx-teamet tror også sterkt at de ikke alltid vil få det riktig første gang, og at samfunnet kollektivt kan lære hva som er best. Et programmeringsspråk må utvikle seg, og Power Fx ble designet for å støtte språkutvikling helt fra begynnelsen.

Alle lagrede Power Fx-dokumenter inneholder et språkversjonsstempel. Hvis Power Fx-teamet ønsker å gjøre en inkompatibel endring, skriver de det de kaller et «tilbakekombineringskonverteringsprogram» som automatisk omskriver formelen neste gang den redigeres. Hvis endringen er noe viktig som teamet trenger å lære brukeren om, viser appen en melding med en kobling til dokumentene. Ved å bruke dette anlegget kan Power Fx fortsatt laste inn apper som ble bygget med forhåndsversjoner av Power Apps fra mange år siden, til tross for alle endringene som har skjedd siden da.

Power Fx-teamet introduserte ShowError for eksempel funksjonen for å vise et feilbanner med rød bakgrunn.

Vis feil.

Brukere elsket det, men de ba også om en måte å vise et suksessbanner (grønn bakgrunn) eller et informasjonsbanner (blå bakgrunn). Så teamet kom opp med en mer generisk Notify funksjon som tar et annet argument for typen varsling. Teamet kunne bare ha lagt til Notify og beholdt ShowError slik det var, men i stedet erstattet ShowError de med Notify. De fjernet en funksjon som tidligere var i produksjon og erstattet den med noe annet. Fordi det ville ha vært to måter å gjøre det samme på, ville denne endringen ha forårsaket forvirring – spesielt for nye brukere – og viktigst av alt ville den ha lagt til kompleksitet. Ingen klaget og alle satte pris på endringen og gikk deretter videre til neste Varsle-funksjon.

Slik ser den samme appen ut når den lastes inn i den nyeste versjonen av Power Apps. Brukeren måtte ikke å gjøre noe for å få denne transformasjonen til å skje. Den skjedde automatisk da appen ble åpnet.

Varsle-funksjonen erstatter ShowError.

Ved å bruke dette anlegget kan Power Fx utvikle seg raskere og mer aggressivt enn de fleste programmeringsspråk.

Ingen udefinert verdi

Enkelte språk, for eksempel JavaScript, bruker konseptet med en udefinert verdi for ikke-initialiserte variabler eller manglende egenskaper. Power Fx unngår dette konseptet for enkelhets skyld. Forekomster som ikke er definert på andre språk, behandles som en feil eller en tom verdi. Alle variabler som ikke er initialisert, starter for eksempel med en tom verdi. Alle datatyper kan ha verdien tom.

Datatyper
Operatører og identifikatorer
Tabeller
Variabler
Imperativ logikk
Global støtte
Uttrykk grammatikk
YAML-formel grammatikk
Formler i lerretsapper