Bemærk
Adgang til denne side kræver godkendelse. Du kan prøve at logge på eller ændre mapper.
Adgang til denne side kræver godkendelse. Du kan prøve at ændre mapper.
Power Fx er det sprog med lav kode, som Microsoft Power Platform bruger. Det er et generelt, stærkt skrevet, deklarativt og funktionelt programmeringssprog.
Power Fx er et sprog med brugervenlig tekst. Det er et sprog med lav kode, som oprettere kan arbejde med direkte på et Excel-lignende formellinje eller i et Visual Studio Code-tekstvindue. Den "lave" lavkode kommer fra sprogets præcise og enkle karakter, hvilket gør almindelige programmeringsopgaver nemme for både udviklere og udviklere. Det giver mulighed for hele spektret af udvikling fra no-code for dem, der aldrig programmeret før til "pro-code" for den erfarne professionelle, uden at lære eller omskrive klipper i mellem. Forskellige teams kan samarbejde og spare tid og udgifter.
Bemærk
- Microsoft Power Fx er det nye navn på formelsproget for lærredapps i Power Apps. Denne oversigt og tilknyttede artikler er et igangværende arbejde, da Microsoft udtrækker sproget fra lærredsapps, integrerer det med andre Microsoft Power Platform produkter og gør det tilgængeligt som åben kildekode. Hvis du vil vide mere om og opleve sproget i dag, skal du starte med Introduktion til formler i lærredapps i dokumentationen til Power Apps og tilmelde dig et gratis prøveabonnement på Power Apps.
- I denne artikel henviser oprettere til brugere, der kan bruge en funktion i begge ender af programmeringens kompetencespektrum. Udviklere refererer til brugere, når funktionen er mere avanceret og sandsynligvis ligger uden for rammerne af en typisk Excel bruger.
Power Fx binder objekter sammen med beskrivende regnearksbaserede formler. Du kan for eksempel tænke på egenskaben Synlig for et kontrolelement på brugergrænsefladen som en celle i et Excel-regneark med en tilknyttet formel, der beregner værdien på baggrund af egenskaberne for andre kontrolelementer. Formellogikken genberegner værdien automatisk, på samme måde som et regneark gør, hvilket påvirker kontrolelementets synlighed.
Power Fx indeholder også vigtig logik, når det er nødvendigt. Regneark har typisk ikke knapper, der kan sende ændringer til en database, men det gør apps ofte. Det samme udtrykssprog bruges til både deklarativ og essentiel logik.
Microsoft gør Power Fx tilgængelig som open source-software. Den er i øjeblikket integreret i lærredsapps, og Microsoft er i gang med at udtrække den fra Power Apps til brug i andre Microsoft Power Platform produkter og som åben kildekode. Flere oplysninger: Microsoft Power Fx på GitHub
Denne artikel er en oversigt over sproget og designprincipperne bag det. Du kan lære mere om Power Fx i følgende artikler:
- Datatyper
- Operatorer og identifikatorer
- Tabeller
- Variabler
- Imperativ logik
- Global støtte
- Udtryksgrammatik
- YAML-formel grammatik
Tænk på regneark
Hvad hvis du kunne oprette en app lige så let, som du bygger et regneark i Excel?
Hvad hvis du kunne udnytte din eksisterende viden om regneark?
Disse spørgsmål inspirerede til oprettelsen af Power Apps og Power Fx. Hundreder af millioner af personer opretter regneark med Excel hver dag. Lad os give dem appoprettelse, der er nem og bruger Excel koncepter, som de allerede kender. Ved at adskille Power Fx fra Power Apps vil vi besvare disse spørgsmål vedrørende opbygning af automatisering, en virtuel agent eller andre domæner.
Alle programmeringssprog, herunder Power Fx, har udtryk: en metode til at repræsentere en beregning af tal, strenge eller andre datatyper.
mass * acceleration på de fleste sprog udtrykker f.eks. multiplicering af mass og acceleration. Du kan placere resultatet af et udtryk i en variabel, bruge det som et argument i en procedure eller indlejre det i et større udtryk.
Power Fx går endnu videre. Et udtryk i sig selv siger ikke noget om, hvad det beregner. Det er op til opretteren at placere det i en variabel eller overføre det til en funktion. I stedet for kun at skrive et udtryk, der ikke har nogen specifik betydning, skriver du i Power Fx en formel, der binder udtrykket til et id. Du skriver force = mass * acceleration som en formel til beregning af force. Som mass eller acceleration ændres, opdateres force automatisk til en ny værdi. Udtrykket beskrev en beregning, en formel, der gav beregningen et navn og brugte det som en betegnelse. Det er derfor, vi refererer til Power Fx som et formelsprog.
Denne formel fra Stack Overflow søger for eksempel i en streng i omvendt rækkefølge. I Excel ligner det følgende billede.
Skærmbillede af en formellinje i Excel med formlen: =RIGHT(A1,LEN(A1)- FIND("|", SUBSTITUTE(A1," ","|", LEN(A1)-LEN(SUBSTITUTE(A1," ","")))) indeholder celle A1 teksten "Hej verden! Det er godt at møde dig!" Celle A2 indeholder teksten "dig!"
Power Fx fungerer med den samme formel, og cellereferencerne erstattes af referencer til kontrolelementegenskaben:
Skærmbillede af en Power Fx-formellinje i Power Apps. Formlen er =RIGHT(Input.Text,Len(Input.Text)- FIND("|", SUBSTITUTE(Input.Text", ""|", Len(Input.Text)-Len(Substitute(Input.Text", ","")))) I feltet Input under formlen vises teksten "Hej verden! Det er godt at møde dig!" vises brev for bogstav. Samtidig vises bogstaverne i det sidste ord i feltet Etiket. Når den fulde tekst vises i feltet Input, vises ordet "dig!" vises i navneboksen.
Når kontrolelementets Input værdi ændres, Label genberegnes formlen automatisk, og den nye værdi vises. Der findes ingen OnChange-hændelseshandlere her, som der ellers ville være på andre sprog.
Et andet eksempel bruger en formel til Fill farven på skærmen. Når skyderne, der styrer Rød, Grøn og Blå, ændres baggrundsfarven automatisk, efterhånden som den genberegnes.
Der findes ingen OnChange-hændelser for kontrolelementerne af typen skyder, som det ofte er tilfældet på andre sprog. Det er ikke muligt eksplicit at angive Fill-egenskabsværdien. Hvis farven ikke virker som forventet, skal du kigge på denne formel for at forstå, hvorfor den ikke fungerer. Du behøver ikke at søge i hele appen for at finde et kodestykke, der angiver egenskaben på et uventet tidspunkt. Der findes ikke et tidselement. De rette formelværdier bevares altid.
Når skyderne angives til en mørk farve, ændres etiketterne for Rød, Grøn og Blå til hvid for at kompensere for det. Denne ændring sker via en simpel formel for egenskaben Color for hvert etiketkontrolelement.
Det gode ved denne formel er, at den er isoleret fra det, der sker for Fill farven: Dette er to helt forskellige beregninger. I stedet for store, monolitiske procedurer består Power Fx-logik typisk af mange mindre formler, der er uafhængige. Denne struktur gør dem lettere at forstå og muliggør forbedringer uden at forstyrre eksisterende logik.
Power Fx er et beskrivende sprog, på samme måde som Excel er. Opretteren definerer, hvilken funktionsmåde de vil have, men det er op til systemet at bestemme og optimere, hvordan og hvornår det skal udføres. For at gøre det praktisk udføres det meste arbejde via funktioner uden sideeffekter, hvilket også gør Power Fx til et funktionssprog (igen, ligesom Excel er).
Altid dynamiske
Et definerende aspekt i regneark er, at de altid er dynamiske, og ændringer afspejles øjeblikkeligt. Der er ingen kompilerings- eller kørselstilstand i et regneark. Når du ændrer en formel eller angiver en værdi, genberegnes regnearket straks for at afspejle ændringerne. Eventuelle registrerede fejl vises med det samme og forstyrrer ikke resten af regnearket.
Power Fx implementerer det samme. Den bruger en trinvis kompilering til løbende at holde programmet synkroniseret med de data, det arbejder på. Ændringer overføres automatisk via programmets graf, hvilket påvirker resultaterne af afhængige beregninger. Disse beregninger kan drive egenskaber for kontrolelementer, f.eks. farve eller placering. Den trinvise kompilering giver også en omfattende redigeringsoplevelse med IntelliType, forslag, autofuldførelse og typekontrol.
I følgende animation vises ordrenummeret i et etiketkontrolelement, der afhænger af skyderkontrolelementet, selvom der er to fejl på mærkaterne under det. Appen er i høj grad i dynamisk og interaktiv. Det første forsøg på at rette formlen ved at skrive .InvalidName medfører en rød linje og en fejl, der vises med det samme, men appen kører hele tiden.
Når du angiver .Employee, Data tilføjer ruden tabellen Medarbejdere, henter metadata for denne tabel og tilbyder straks forslag til kolonner. Du har lige gået på tværs af en relation fra én tabel til en anden, og systemet har foretaget de nødvendige justeringer af appens referencer. Det samme sker, når du tilføjer en .Customer.
Efter hver ændring fortsætter skyderen med dens sidste værdi, og alle variabler bevarer deres værdi. Hele vejen igennem vises ordrenummeret fortsat i den øverste etiket, som det skal. Appen er live og behandler rigtige data hele tiden. Du kan gemme den, gå væk, og andre kan åbne og bruge den på samme måde som Excel. Der er intet buildtrin, ingen kompilering. Der er kun et udgivelsestrin for at bestemme, hvilken version af appen der er klar til brugerne.
Lav kode
Power Fx beskriver forretningslogik i præcise, men effektive formler. Den fleste logik reduceres til en enkelt linje med masser af udtryksfuldhed og kontrol til mere komplekse behov. Målet er at holde et minimalt antal begreber, som en udvikler skal forstå - helst ikke flere end en Excel-bruger allerede ville kende.
Hvis du f.eks. vil slå fornavnet på en medarbejder op for en ordre, skal du skrive Power Fx som vist i følgende animation. Ud over Excel-begreber er det eneste tilføjede koncept, der bruges her, prikanmærkningen "." for at foretage detailudledning i en datastruktur, i dette tilfælde .Employee.'First Name'. Animationen viser tilknytningen mellem delene i Power Fx-formlen og de begreber, der eksplicit skal kodes i det tilsvarende JavaScript.
Lad os se mere detaljeret på alle de ting, Som Power Fx gør for os, og den frihed, den har til at optimere, fordi formlen er deklarativ:
Asynkron: Alle datahandlinger i Power Fx er asynkrone. Det er ikke nødvendigt for opretteren at angive dette, og det er heller ikke nødvendigt for opretteren at synkronisere handlinger, når kaldet er ovre. Opretteren behøver slet ikke at være opmærksom på dette koncept. De behøver ikke at vide, hvad et løfte eller en lambda-funktion er.
Lokal og fjern:bruger den samme syntaks og funktioner til data, der er lokale i hukommelsen, Power Fx og forbinder en database eller tjeneste eksternt. Brugeren behøver ikke at overveje denne skelnen. Power Fx uddelegerer automatisk, hvad den kan, til serveren for at behandle filtre og sorteringer mere effektivt der.
Relationsdata: Ordrer og Kunder er to forskellige tabeller med en mange-til-en-relation. OData-forespørgslen kræver en "$expand" med kendskab til den fremmede nøgle, i stil med en Join i SQL. Formlen har ikke noget af dette. Faktisk er databasenøgler et andet koncept, som opretteren ikke behøver at vide noget om. Opretteren kan bruge en simpel punktnote til at få adgang til hele grafen over relationer fra en post.
Projektion: Når du skriver en forespørgsel, skriver
select * from tablemange udviklere, hvilket bringer alle kolonnerne med data tilbage. Power Fx analyserer alle de kolonner, der bruges i hele appen, også på tværs af formelafhængigheder. Projektion optimeres automatisk, og igen behøver en opretter ikke at vide, hvad "projektion" betyder.Hent kun det, der er nødvendigt: I dette eksempel indebærer funktionen
LookUp, at der kun skal hentes én post, og det er alt, hvad der returneres. Hvis der anmodes om flere poster ved hjælp af funktionenFilter– som tusindvis af poster kan kvalificere – returneres der kun én side med data ad gangen i rækkefølgen 100 poster pr. side. Brugeren skal håndbevægelse gennem et galleri eller en datatabel for at få vist flere data, og den henter automatisk flere data til dem. Opretteren kan få mening med store datasæt uden at skulle tænke på at begrænse dataanmodninger til håndterbare mængder.Kører kun, når det er nødvendigt: Du definerer en formel for
Textegenskaben for etiketkontrolelementet. Efterhånden som den valgte variabel ændres, genberegnesLookUpautomatisk, og etiketten opdateres. Opretteren behøvede ikke at skrive en OnChange-handler til Udvælgelse og behøvede ikke at huske, at denne etiket er afhængig af den. Dette er beskrivende programmering som beskrevet tidligere, og opretteren har angivet, hvad de ønskede at have i etiketten, ikke hvordan eller hvornår den skal hentes. Hvis denne etiket ikke er synlig, fordi den er på en skærm, der ikke er synlig, eller fordi densVisibleegenskab er falsk, kan du udskyde denne beregning, indtil etiketten er synlig og effektivt eliminere den, hvis det sjældent sker.Excel oversættelse af syntaks : Mange brugere ved, at& -tegnet bruges til strengsammenkædning i Excel. JavaScript bruger et plustegn (+), og på andre sprog bruges der en prik (.).Visningsnavne og lokalisering:
First Namebruges i formlen, Power Fx mensnwind_firstnamebruges i JavaScript-ækvivalent. I Microsoft Dataverse og SharePoint findes der et vist navn for kolonner og tabeller ud over et entydigt logisk navn. De viste navne er som i dette tilfælde ofte meget mere brugervenlige, men de har en anden vigtig kvalitet, da de kan oversættes. Hvis du har et flersproget team, kan de enkelte teammedlemmer se tabel- og feltnavne på deres eget sprog. I alle tilfælde sørger Power Fx for, at det korrekte logiske navn automatisk sendes til databasen.
Ingen kode
Du behøver ikke at læse eller skrive Power Fx for at begynde at udtrykke logik. Du kan udtrykke mange tilpasninger og logik via simple parametre og brugergrænsefladegeneratorer. Disse værktøjer uden kode er bygget til at læse og skrive Power Fx, så der er masser af headroom for nogen at tage det videre. Værktøjer uden kode giver dog aldrig udtryksfuldhed på hele sproget. Selv når du bruger ikke-kodebyggere, er formellinjen foran og centreret i Power Apps for at oplære opretteren om, hvad der gøres på deres vegne, så de kan begynde at lære Power Fx.
Lad os se på nogle eksempler. I Power Apps indeholder egenskabspanelet "ingen kode"-parametre og knapper til egenskaberne for kontrolelementerne. I praksis er de fleste egenskabsværdier statiske. Du kan bruge farvegeneratoren til at ændre baggrundsfarven i Gallery. Bemærk, at formellinjen afspejler denne ændring og opdaterer formlen til et andet RGBA-opkald. Du kan når som helst gå til formellinjen og tage denne ændring et skridt videre – i dette eksempel ved at bruge ColorFade til at justere farven. Farveegenskaben vises stadig i egenskabspanelet, men ikonet fx vises, når du peger på det med musen, og du føres hen til formellinjen. Dette fungerer fuldt ud på to måder: Hvis du fjerner ColorFade-opkaldet, ændres farven til noget, som egenskabspanelet kan forstå, og du kan bruge det igen til at angive en farve.
Her er et mere kompliceret eksempel. I galleriet vises en liste over medarbejdere fra Dataverse. Dataverse indeholder visninger over tabeldata. Du kan vælge en af disse visninger, og formlen ændres for at bruge funktionen Filter med dette visningsnavn. Du kan bruge de to rullemenuer til at ringe op til den korrekte tabel og få vist den uden at røre formellinjen. Men lad os sige, at du vil gå videre og tilføje en sortering. Du kan tilføje denne funktion på formellinjen, og egenskabspanelet viser igen et fx-ikon og dirigerer ændringer til formellinjen. Og igen, hvis du forenkler formlen til noget, som egenskabspanelet kan læse og skrive, kan det bruges.
Disse eksempler er enkle. Power Fx er et godt sprog til at beskrive interaktioner uden kode. Det er præcist, kraftfuldt og nemt at fortolke. Det giver headroom, der er så ofte behov for med "ingen klipper" op til lav-kode.
Professionel kode
Lavkodefremstillere bygger nogle gange løsninger, der kræver hjælp fra en ekspert, eller som overtages af en professionel udvikler for at vedligeholde og forbedre. Professionelle ved også, at udvikling med lave kode kan være nemmere, hurtigere og mindre omkostningskrævende end at bygge et professionelt værktøj. Ikke alle situationer kræver alle funktioner i Visual Studio.
Professionelle brugere ønsker at bruge professionelle værktøjer for at være mest produktive. Du kan gemme Power Fx-formler i YAML-kildefiler, som er nemme at redigere ved hjælp af Visual Studio Code, Visual Studio eller en hvilken som helst anden teksteditor. Lagring af formler i YAML-filer giver dig mulighed for at sætte Power Fx under kildestyring ved hjælp af GitHub, Azure DevOps eller et andet versionsstyringssystem.
Power Fx understøtter formelbaserede komponenter til deling og genbrug. Den understøtter parametre til komponentegenskaber, hvilket gør det muligt at oprette rene brugerdefinerede funktioner med flere forbedringer på vej.
Power Fx kan også bruges til at samle komponenter og tjenester, der er udviklet af professionelle brugere. Out-of-the-box connectors giver adgang til hundredvis af datakilder og webtjenester. Brugerdefinerede connectors gør det muligt for Power Fx at tale med en hvilken som helst REST-webtjeneste. Kodekomponenter gør det muligt for Power Fx at interagere med fuldt brugerdefineret JavaScript på skærmen og siden.
Designprincipper
Enkel
Power Fx er designet til at målrette målgruppen for udvikleren, hvis medlemmer ikke er oplært som udviklere. Når det er muligt, bruger sproget viden, som denne målgruppe allerede kender eller hurtigt kan hente. Antallet af begreber, der kræves for at opnå en vellykket implementering, holdes på et minimum.
Det er også godt for udviklere at være simple. For udviklerpublikummet har Power Fx til formål at være et sprog med lav kode, der reducerer den tid, det tager at bygge en løsning.
Excel-konsistens
Microsoft Power Fx-sprog låner meget fra Excel-formelsproget. Det udnytter Excel viden og erfaring fra de mange producenter, der også bruger Excel. Typer, operatorer og funktionsemantik er så tæt på Excel som muligt.
Hvis Excel ikke har et svar, ser Power Fx ud til SQL. Efter Excel er SQL det næstmest anvendte beskrivende sprog, og det kan give vejledning i datahandlinger og indtastning af stærke datatyper, som Excel ikke kan.
Beskrivende
Opretteren beskriver, hvad de ønsker, at deres logik skal gøre, ikke nøjagtigt, hvordan og hvornår den skal gøre det. Denne fremgangsmåde gør det muligt for compileren at optimere ved at udføre handlinger parallelt, udskyde arbejde, indtil det er nødvendigt, og præfetching og genbrug af cachelagrede data.
I et Excel regneark definerer forfatteren f.eks. relationerne mellem celler, men Excel bestemmer, hvornår og i hvilken rækkefølge formler skal evalueres. På samme måde kan du tænke på formler i en app som "genberegning" efter behov baseret på brugerhandlinger, databaseændringer eller timerhændelser.
Funktionsbaseret
Brug rene funktioner, der ikke har bivirkninger. Denne fremgangsmåde resulterer i logik, der er nemmere at forstå og giver compileren størst frihed til at optimere.
I modsætning til Excel muterer apps efter deres natur tilstanden. Apps har f.eks. knapper, der gemmer ændringer af posten i en database. Nogle funktioner har derfor bivirkninger, selv om begrænse disse bivirkninger så meget som det er praktisk.
Sammensætning
Hvis det er muligt, kan du tilføje funktioner, der fungerer godt sammen med eksisterende funktionalitet. Du kan opdele effektive funktioner i mindre dele, som du nemmere kan bruge uafhængigt af hinanden.
Et gallerikontrolelement har f.eks. ikke separate Sort- og Filter-egenskaber. I stedet opretter Sort du funktionerne og Filter sammen til en enkelt Items egenskab. Du kan lagdelte brugergrænsefladen til at udtrykke Sort og Filter funktionsmåde oven Items på egenskaben ved hjælp af en tovejseditor for denne egenskab.
Typesikker
Typerne af alle værdier kendes på kompileringstidspunktet. Denne fremgangsmåde giver mulighed for tidlig registrering af fejl og omfattende forslag under oprettelse.
Polymorfe typer understøttes, men før du kan bruge dem, skal du fastgøre typen til en statisk type, og denne type skal være kendt på kompileringstidspunktet. Funktionerne IsType og AsType medfølger til test- og castingtyper.
Typeudledning
Typer udledes af deres brug, uden at de erklæres. Hvis du for eksempel angiver en variabel til et tal, oprettes variabeltypen som et tal.
Brug af konflikttype resulterer i kompileringsfejl.
Decimalseparatorer, der skelner mellem landestandarder
Nogle steder i verden bruger man en prik (.) som decimalseparator, mens andre bruger komma (,). Excel følger denne regionale konvention. Andre programmeringssprog bruger normalt en kanonisk prik (.) som decimalseparator for alle brugere over hele verden. For at være så tilgængelig som muligt for oprettere på alle niveauer er det vigtigt, at 3,14 er et decimaltal for en person i Frankrig, der har brugt denne syntaks hele livet.
Valget af decimalseparator har en overlappende indflydelse på den listeseparator, der bruges til funktionskaldsargumenter, og operatoren til sammenkædning.
| Decimalseparator på forfatterens sprog | Power Fx-decimalseparator | Power Fx-listeseparator | Power Fx-sammenkædningsoperator |
|---|---|---|---|
| . (prik) | . (prik) | , (komma) | ; (semikolon) |
| , (komma) | , (komma) | ; (semikolon) | ;; (dobbelt semikolon) |
Flere oplysninger: Global support
Ikke objektorienteret
Excel er ikke objektbaseret, og det er Power Fx heller ikke. På visse sprog er strengens længde for eksempel udtrykt som en egenskab for strengen, for eksempel "Hello World".length i JavaScript. I Excel og Power Fx er dette i stedet udtrykt i form af en funktion som Len( "Hello World" ).
Komponenter med egenskaber og metoder er objektorienterede, og Power Fx kan nemt arbejde sammen med dem. Men hvor det er muligt, foretrækker du en funktionel tilgang.
Kan udvides
Oprettere kan oprette deres komponenter og funktioner ved hjælp af selve Power Fx. Udviklere kan oprette deres komponenter og funktioner ved at skrive JavaScript.
Udviklervenlig
Selvom udviklere er det primære mål, kan du prøve at være udviklervenlige, hvor det er muligt. Hvis det ikke er i konflikt med de designprincipper, der er beskrevet tidligere, kan du gøre ting på en måde, som en udvikler værdsætter. Excel har f.eks. ingen mulighed for at tilføje kommentarer, så brug C-lignende linje og indbyggede kommentarer.
Sprogudvikling
Det er både nødvendigt og vanskeligt at udvikle programmeringssprog. Alle er – med god grund – bekymret for, om en ændring, uanset hvor tilsigtet den er, kan bryde den eksisterende kode og kræve, at brugerne skal lære et nyt mønster. Power Fx tager bagudkompatibilitet alvorligt, men Power Fx-teamet er også stærkt overbevist om, at de ikke altid får det rigtigt første gang, og at community'et samlet kan lære, hvad der er bedst. Et programmeringssprog skal udvikle sig, og Power Fx er designet til at understøtte sprogudvikling lige fra starten.
Alle gemte Power Fx-dokumenter indeholder et sprogversionsstempel. Hvis Power Fx-teamet ønsker at foretage en inkompatibel ændring, skriver de det, de kalder en "tilbage-kompatibilitetskonverteringsprogram", der automatisk omskriver formlen, næste gang den redigeres. Hvis ændringen er noget vigtigt, som teamet skal oplære brugeren om, viser appen en meddelelse med et link til dokumentet. Ved hjælp af denne facilitet kan Power Fx stadig indlæse apps, der er bygget med prøveversionsversionerne af Power Apps fra mange år siden, på trods af alle de ændringer, der er sket siden da.
Power Fx-teamet introducerede f.eks. funktionen ShowError til at vise et fejlbanner med en rød baggrund.
Brugerne elskede det, men de bad også om en måde at vise et succesbanner (grøn baggrund) eller et informationsbanner (blå baggrund). Så teamet kom med en mere generisk Notify funktion, der tager et andet argument for typen af meddelelse. Holdet kunne bare have tilføjet Notify og holdt ShowError den måde, det var, men i stedet erstattede ShowError de med Notify. De fjernede en funktion, der tidligere var i produktion og erstattede den med noget andet. Da der ville have været to måder at gøre det samme på, ville denne ændring have skabt forvirring – især for nye brugere – og det vigtigste ville have øget kompleksiteten. Der var ingen klager, alle var glade for ændringen og gik derefter videre til deres næste meddelelsesfunktion.
Sådan ser den samme app ud, når den indlæses i den nyeste version af Power Apps. Brugeren skulle ikke foretage sig noget for at få denne transformering til at ske. Det skete automatisk, da appen blev åbnet.
Ved at bruge denne facilitet kan Power Fx udvikle sig hurtigere og mere aggressivt end de fleste programmeringssprog.
Ingen foruddefineret værdi
Nogle sprog, for eksempel JavaScript, bruger begrebet ikke-defineret værdi for ikke-initialiserede variabler eller manglende egenskaber. For nemheds skyld undgår Power Fx dette koncept. Forekomster, der ikke er defineret på andre sprog, behandles enten som en fejl eller en tom værdi. Alle ikke-initialiserede variabler starter f.eks. med en tom værdi. Alle datatyper kan bruge den tomme værdi.
Relaterede artikler
Datatyper
Operatorer og identifikatorer
Tabeller
Variabler
Imperativ logik
Global støtte
Udtryksgrammatik
YAML-formel grammatik
Formler i lærredapps