Jaa


Power Fx työpöytätyönkuluissa

Power Fx on vähäkoodinen kieli, jolla logiikka ilmaisemistaan Microsoft Power Platformissa. Se on yleiskäyttöinen, vahvasti tyypitetty, määrittävä ja toimiva ohjelmointikieli.

Power Fx ilmaistaan helposti ymmärrettävinä lausekkeina. Se on vähän koodia käyttävä kieli, jonka avulla tekijät voivat käsitellä suoraan Excelin tyyppisiä kaavarivejä tai Visual Studio Coden teksti-ikkunaa. Vähän koodia käyttävän kielen vähäinen koodin määrä on mahdollista kielen yhdenmukaisen ja yksinkertaisen luonteen vuoksi. Sen avulla ohjelmointitehtävät ovat helppoja sekä tekijöille että kehittäjille.

Power Fx mahdollistaa täyden valikoiman kehitystä koodittomista tekijöistä ilman ohjelmointiosaamista ammattikehittäjien pro-koodiin. Se mahdollistaa eri ryhmien yhteistyön ja säästää aikaa ja vaivaa.

Power Fx:n käyttö työpöytätyönkulussa

Käyttääksesi Power Fx:iä ilmauskielenä työpöytätyönkulussa sinun on luotava työpöytätyönkulku ja otettava käyttöön vastaava vaihtopainike luodessasi läpikulkua Power Automate -pöytäkoneen konsoliin.

Näyttökuva Ota käyttöön Power Fx -painikkeesta

Erot työnkuluissa, joissa Power Fx on otettu käyttöön

Huomautus

Kunkin Power Fx -lausekkeen alussa on oltava = (yhtä suuri kuin -merkki).

Siirryttäessä työnkuluista, joissa Power Fx on poistettu käytöstä, havaittavissa on joitakin eroja. Uusien työpöytätyönkulkujen luontikokemusta voidaan sujuvoittaa ottamalla seuraavat tärkeät käsitteet huomioon:

  • Aivan kuten Excelin kaavioissa Power Fx:ää lausekekielenä käyttävät työpöytätyönkulut käyttävät yhteen (1) pohjautuvaa matriisi-indeksointia eikä nollaan (0) pohjautuvaa indeksointia. Esimerkiksi lauseke =Index(numbersArray, 1) palauttaa numbersArray-matriisin ensimmäisen elementin.

  • Muuttujien nimien isot ja pienet kirjaimet ovat merkittäviä Power Fx:n työpöytätyönkuluissa. Esimerkiksi, NewVar on erilainen kuin newVar.

  • Kun Power Fx on otettu käytötön työpöytätyönkulussa, muuttuja on alustettava ennen käyttöä. Jos alustamatonta muuttujaa yritetään käyttää Power Fx -lausekkeissa, tuloksena on virhe.

  • Jos-toiminto hyväksyy yhden ehdollisen lausekkeen. Aiemmin siinä voitiin käyttää useita operandeja.

  • Vaikka työnkuluissa, joissa Power Fx:ää ei ole otettu käyttöön, käytetään termiä Yleinen arvo ilmaisemaan tuntematon objektityyppi, Power Fx:n tyyppijärjestelmä on tiukka. Power Fx:ää käyttävissä työnkuluissa erotellaan dynaamiset muuttujat (muuttujat, joiden tyyppi tai arvo voidaan muuttaa suorituksen aikana) ja dynaamiset arvot (arvot, joiden tyyppi tai rakenne määritetään suorituksen aikana). Seuraava esimerkki selventää, mitä tämä ero tarkoittaa. dynamicVariable-muuttujan tyyppi muuttuu suorituksen aikana siten, sen arvo on ensin Numeric ja sitten Boolean. dynamicValue puolestaan määritetään suorituksen aikana tyypittämättömäksi objektiksi ja sen toteutunut tyyppi on Custom object:

    Näyttökuvassa dynaamisen muuttujan ja dynaamisen arvon määrittäminen

  • Seuraavat arvot käsitellään dynaamisina arvoina:

    • Tietotaulukot
    • Mukautetut objektit, joissa on tuntematon rakenne
    • Dynaamisen toiminnon tulokset (esimerkiksi Suorita .NET -komentosarja -toiminto)
    • Suorita työpöytätyönkulku -toiminnon tulokset
    • Minkä tahansa toiminnon tulos ilman esimääritettyä rakennetta (esimerkiksi Lue Excel-laskentataulukosta tai Lue uusi luettelo)
  • Dynaamisia arvoja käsitellään samoin kuin Power Fx:n tyypittämätöntä objektia, ja ne yleensä edellyttävät nimenomaisten funktioiden muuntamista pakolliseksi tyypiksi (esimerkiksi Bool() ja Text()). Kokemusta sujuvoittaa implisiittinen muunnos, kun dynaamista arvoa käytetään toimintosyötteenä tai Power Fx -lausekkeen osana. Laatimisen aikana ei ole oikeellisuustarkistusta mutta suorituksenaikaisen toteutuneen arvon mukaan suorituksenaikainen virhe esiintyy, jos muunnos epäonnistuu.

  • Dynaamista muuttujaa käytettäessä näytetään aina varoitussanoma, jonka mukaan lykätty tyyppi on annettu. Nämä varoitukset johtuvat Power Fx:n tiukasta vaatimuksesta vahvan tyyppisille skeemoille (tiukasti määritellyt tyypit). Dynaamisten muuttujien käyttö on estetty luetteloissa, taulukoissa ja tietuearvojen ominaisuutena.

  • Yhdistämällä Suorita Power Fx -lauseke -toiminto lausekkeisiin funktioilla Collect, Clear, ClearCollect ja Patch, voidaan emuloida toimintojen Lisää kohde luetteloon ja Lisää rivi tietotaulukoon toimintatapoja, jotka eivät olleet aiemmin saatavana Power Fx -yhteensopivissa työnpöytätyönkuluissa. Vaikka molemmat toiminnot ovat edelleen käytettävissä, Collect-funktiota käytetään vahvoja tyyppejä käyttäviä luetteloit (kuten tiedostoluetteloa) käsiteltäessä. Tämä funktio varmistaa, että luettelo pyysyy tyypitettynä, sillä Lisää kohde luetteloon -toiminto muuntaa luettelon tyypittämättömäksi objektiksi.

Esimerkkejä

  • =1 syöttökentässä vastaa numeroarvoa 1 .
  • = variableName on sama kuin variableName-muuttujan arvo. 
  • Lauseke = {'prop':"value"} palauttaa tietueen arvo, joka vastaa mukautettua objektia.
  • Lauseke = Table({'prop':"value"}) palauttaa Power Fx -taulukon, joka mukautettujen objektien luetteloa. 
  • Lauseke - = [1,2,3,4] lue numeroarvojen luettelon.
  • Luettelon arvoa voidaan käyttää funktiolla Index(var, number), jossa var on luettelon nimi ja number on noudettavan arvon sijainti.
  • Tietotaulukon solua voidaan käyttää sarakeindeksi avulla funktiolla Index(). =Index(Index(DataTableVar, 1), 2) noutaa arvon solusta, jolla sarakkeessa 2 olevalla rivillä 1. =Index(DataRowVar, 1) noutaa arvon solusta rivillä 1.
  • Interpoloitu arvo voidaan sisällyttää syötteeseen taikka käyttöliittymän tai verkkoelementin valitsimeen käyttämällä syntaksia: Text before ${variable / expression} text after
    • Esimerkki: The total number is ${Sum(10, 20)}

Huomautus

Jos halutaan käyttää dollarimerkkiä ($) ja sen jälkeen avaavaa aaltosuljetta ({) Power Fx -lausekkeessa taikka käyttöliittymän tai verkkoelementin valitsimen syntaksissa ilman, että Power Automate -työpöytäsovellus käsittelee sen merkkijonon interpolointisyntaksina, on käytettävä seuraavaa syntaksia: $${ (ensimmäinen dollarimerkki toimii ohjausmerkkinä)

Käytettävissä olevat Power Fx -funktiot

Täydellinen luettelo kaikista käytettävissä olevista Power Automate -työpöytätyönkulkujen funktioista on kohdassa Kaavaviite – työpöytätyönkulut.

Tunnetut ongelmat ja rajoitukset

  • Seuraavia toimintoja automaatiotoimintojen vakiokirjastosta ei tueta tällä hetkellä:
    • Switch
    • Case
    • Oletuspalvelupyyntö
  • Joitakin IntelliSensen kautta esitettyjä Power Fx -funktioita ei tällä hetkellä tueta työpöytävirroissa. Kyseisissä funktioissa näkyy käytettäessä seuraava suunnitteluaikavirhe: Parametria 'Value': PowerFx-tyyppiä 'OptionSetValueType' ei tueta.

Uutta

Tässä osassa käsitellään kussakin päivityksessä tapahtuneita muutoksia.

2.48

Syyskuun 2024 julkaisu:

  • Otettiin uudelleen käyttöön sellaiset luettelon ja tietotaulukon käsittelytoiminnot Muuttujat-luokasta, joita ei tuettu aiemmin.
  • Mukautettujen objektien, luetteloiden ja tietotaulukoiden alkuperäinen tyypittämättömän objektin tuki. Lisätietoja tyypittämättömistä objekteista on kohdassa Tyypittämätön objektin tietotyyppi.
    • Tämä muutos otettiin käyttöön vähentämään suunnittelunaikaisia varoituksia ja lykättyjen tyyppien käyttöä. Tyypittämätön objekti on, jolla tyyppejä, joiden rakennetta ei tunneta, voidaan käsitellä suunnittelun aikana.
    • Aiemmissa versioissa dynaamiset muuttujat (muuttujat, joiden tyyppi tai arvo voidaan muuttaa suorituksen aikana) ja dynaamiset arvot (arvot, joiden tyyppi tai rakenne määritetään suorituksen aikana) käsiteltiin samalla tavoin. Kun Power Fx -lausekkeessa käytettiin joko dynaamista arvoa tai dynaamista muuttuja, seurauksena oli varoitus: Lykätty tyyppi annettu. Nämä varoitukset annettiin, koska Power Fx pakottaa käyttämään tiukkoja tyyppirakenteita (vahvan määrityksen tyypit). Tästä versiosta alkaen nämä kaksi tapausta erotellaan. Siinä missä dynaamiset muuttujat aiheuttava edelleen lykätyn tyypin varoituksen, dynaamisia arvoja käsitellään nyt tyypittämättöminä objekteina.
    • Kaikki tietotaulun muuttavat ovat tyypittämättömiä, kun taas Muunna mukautettu objekti JSON-merkkijonoksi -toiminnon tuloksena olevat mukautetut objektit ovat tyypittämättömiä. Luettelot muuttuvat tyypittämättömiksi sen jälkeen, kun niitä on käsitelty Power Automate -työpöytäsovelluksen Muuttujat-luokan toiminnoilla.
    • Aiemmin tietyt toimintojen vakiokirjastojen automaatiotoiminnot, kuten Lue Excelistä, Luo CSV-tiedostosta, Poimi tietoja verkosta, Poimi tiedot ikkunasta, Suorita SQL-lause ja Muunna JSON-merkkijono mukautetuksi objektiksi, tuotti dynaamisen muuttuja ja varoituksen lykätystä tyypistä. Nyt ne tuottavat sen sijaan tyypittämättömän tietotaulukon tai tyypittämättömän mukautetun objektimuuttujan.
  • Power Fx -funktio Set on nyt otettu käyttöön, joskaan sitä ei vielä tueta täysin. Vaikka sitä ei voi käyttää muuttujan arvon suoraan muokkaamiseen, sitä voidaan käyttää edellä olevissa rakenteissa päivittämään mukautetun objektin ominaisuuksia ja luetteloiden arvoja tietyissä indekseissä (esimerkiksi =Set(Index(Index(DataTable, 1), 1), 42) tai =Set(customObject.property, 17)).
  • Korjattiin ongelma, joka liittyi objektin sisäkkäisten luettelo-ominaisuuksien käyttämiseen työnkuluissa, kun niissä on otettu käyttöön Power Fx.

Varoitus

Power Automate -työpöytäsovelluksen versiossa 2.48 on tehty Power Fx -yhteensopiviin työpöytätyönkulkuihin päivityksiä, jotka saattavat vaikuttaa aiemmilla versioilla luotujen Power Fx -yhteensopivien työnkulkujen suorittamiseen. Tämä version huolellinen testaaminen aiemmin luoduissa Power Fx -työnkuluissa on suositeltavaa.

  • Alityönkulun tulokset: Alityönkulkujen tulosmuuttujia kannattaa käyttää harkiten työpöytätyönkulussa, jossa Power Fx on otettu käyttöön. Tämä koskee luettelo-, mukautettu objekti- ja tietotaulukkotyyppisten tulosmuuttujia.
  • Yksiarvoiset sarakematriisit: Lausekkeella, kuten =[1, 2, 3], luodun matriisin tuloksena on yksiarvoinen sarakematriisi työnkuluissa, joissa Power Fx on otettu käyttöön, ja matriisin kohteet ovat objekteja, joilla on yksi ominaisuus: {Value: 1}. Yritettäessä käyttää tämän kohteen Value-ominaisuutta sen jälkeen, kun toiminnon ensimmäistä matriisia on muokattu, tuloksena on laatimisvirhe.
  • Power Fx -funktion käyttö: Tietyissä Power Fx -funktioissa, kutenIsEmpty(), aiemmat versiot hyväksyivät dynaamisen muuttujan argumenteiksi, eikä se aiheuttanut vahvistusvirhettä. Versiossa 2.48 dynaamisena muuttujan käsitellyn muuttujan käyttäminen aiheuttaa vahvistusvirheen ja aiemmin luotujen työnkulkujen suorittaminen epäonnistuu. Tämä ratkaistaan käyttämällä oikeaa määritystä dynaamisessa (tyypittämättömässä) arvossa. Lisätietoja funktioiden määrittämisestä on kohdassa Tyypittämättömän objektin tietotyyppi. Tämä ongelma voi esiintyä työnkulkua muokattaessa, jolloin avautuu virhesanoma, kuten Virheellinen argumenttityyppi (UntypedObject). Odotetaan sen sijaan taulukkoarvoa. Ongelma ratkaistaan muuntamalla lauseke kelvolliseksi virhesanoman ohjeiden mukaisesti.
    • Muita vahvistusvirheen dynaamisia ja tyypitettyjä muuttujia yhdessä käytettäessä mahdollisesti aiheuttavia funktioita ovat esimerkiksi Sum(), Filter(), Concatenate() ja operaattorit, kuten in (esimerkiksi "string" in DynamicValueObject).
  • Muuttujavertailu: Samoin kuin edellä mainitussa ongelmassa, tyyppien yhteensopimattomuuksia voi esiintyä käytettäessä vertailuoperaattoreita (kuten =, <>, > ja <) dynaamisia arvoja sisältävissä lausekkeissa. Ennen dynaamisten arvojen vertailu on toimittava harkiten ja käytettävä oikeita määrityksiä.

2.43

Huhtikuun 2024 julkaisussa:

  • Kirjainkoon merkitsevyys. Esimerkiksi NewVar on eri muuttuja kuin newVar.
  • Suorita Power Fx -lauseke -toiminto on käytettävissä Muuttujat-toimintoryhmässä. Suorita Power Fx -lauseke mahdollistaa lausekkeiden suorittamisen suoraan tietolähteissä.
  • Power Fx -funktioita Collect, Clear, ClearCollect tuetaan työpöytätyönkuluissa.
  • Power Fx -funktiota Patch tuetaan työpöytätyönkuluissa.
  • Muuttujia ja Power Fx -lausekkeita voidaan käyttää käyttöliittymäelementissä tai verkkovalitsimen syntaksissa.
  • Interpoloituja arvoja voidaan nyt lisästä käyttöliittymä-/verkkoelementin valitsimen syntaksiin. Interpoloituja merkkijonoja varten voidaan käyttää syntaksia: ${ Power Fx -lauseke }.

Tärkeää

Power Automate -työpöytäsovelluksen versiossa 2.43 on tehty Power Fx -yhteensopiviin työpöytätyönkulkuihin päivityksiä, jotka saattavat vaikuttaa aiemmilla versioilla luotujen Power Fx -yhteensopivien työpöytätyönkulkujen suorittamiseen. Tarkemmin:

  • Muuttujat, joiden kirjainkoolla on merkitystä: Power Fx -yhteensopivien työpöytätyönkulkujen muuttujien nimissä, jotka on luotu vähintään Power Automate -työpöytäsovelluksen versiolla 2.43, kirjainkoolla on merkitystä. Power Automate -työpöytäsovelluksen versiolla 2.42 ja sitä aiemmilla luodut Power Fx -työpöytätyönkulut mahdollistivat muuttujien nimet, joiden kirjainkoolla ei ollut merkitystä. Esimerkiksi merkkijonoilla NewVar ja newVAR viitataan samaan muuttujaan. Varmista Power Automate -työpöytäsovelluksen versiolla 2.42 ja sitä aiemmilla luotujen Power Fx -yhteensopivien työpöytätyönkulkujen osalta, että tarkastat ja varmistat, että tuotetut muuttujat vastaavat odotuksia.

2.42

Maaliskuun 2024 julkaisussa:

  • IntelliSense-ominaisuudet ovat nyt käytettävissä työpöytätyönkuluissa, joissa on Power Fx otettu käyttöön.
    • Syntaksin värittäminen
    • Automaattisen täydennyksen toiminnot kirjoittamisen aikana reaaliaikaisilla ehdotuksilla
    • Power Fx -funktioiden allekirjoitusten avustajat

Huomautus

IntelliSense-ominaisuudet ovat käytettävissä lausekkeille. Jos haluat syöttää lausekkeen, käytä vastaavan syötteen alussa yhtäsuuruusmerkkiä (= lausekkeesi ) tai merkkijonon interpolointimerkintää (${ lausekkeesi }).

  • Funktion valitsin
    • Voit käyttää funktion valitsijaa käyttäen fx-painiketta, kun olet vuorovaikutuksessa vastaavien syötteiden kanssa. Kaikki työpöytävirtojen tällä hetkellä tukemat Power Fx -funktiot ovat käytettävissä siellä.

2.41

Helmikuun 2024 julkaisussa:

  • Tästä alkaen syötteet, joka ei ala yhtäläisyysmerkillä (=), katsotaan tekstityypin arvoiksi. Numeeristen ja totuusarvosyötteiden on aina alettava yhtäläisyysmerkillä.
  • Syötteet tukevat nyt interpoloituja merkkijonoja. Interpoloitu arvo voidaan sisällyttää syötteeseen käyttämällä seuraavaa syntaksia: Text before ${variable/ expression} text after.
    • Esimerkki: The total number is ${Sum(10, 20)}

Huomautus

Interpoloidun merkkijonon syntaksia voidaan käyttää poistamalla yhtäläisyysmerkki (=) syötteen alusta.

2.39

Joulukuun 2023 julkaisussa:

  • Jos syöte ei ala yhtäläisyysmerkillä, seuraavat säännöt ovat voimassa:
    • Numeeriset arvot ilman välilyöntejä tulkitaan numeerisiksi arvoiksi.
    • Tosi/Epätosi syötteenä kirjainkoosta riippumatta ja ilman välilyöntejä tulkitaan loogisiksi arvoiksi.
    • Kaikki muut syötteet katsotaan tekstityyppiarvoiksi.