Pilvityönkulkujen lausekekeitto

Tässä artikkelissa kerrotaan 30 käyttövalmiista lausekemallista Power Automate pilvityönkulkujen yleisissä skenaarioissa. Voit kopioida, mukauttaa ja käyttää näitä malleja työnkuluissasi.

Huomautus

Nämä lausekkeet toimivat kaikilla Power Automate pilvipalvelun työnkulun käyttöoikeustasoilla. Etsi koko funktion viite kohdasta Työnkulkulausekefunktiot.

Tekstitoiminnot

1. Muuta isoilla tai pienillä kirjaimilla

Skenaario: Normalisoi käyttäjän syöte ennen vertailua tai tallennustilaa.

Lauseke: toUpper(variables('input')) tai toLower(variables('input'))

Esimerkki: toLower('John.Smith@Contoso.COM') palauttaa john.smith@contoso.com

Tärkeää

toUpper() kirjainkoko on merkitsevä vertailussa. Jos käytössäsi toUpper(A) = Bon , varmista, että käytät sitä molemmin puolin. toUpper(A) = B epäonnistuu, jos B on yhdistelmätapaus.

2. Poimi alimerkkijora (vasen, oikea, keskiosa)

Skenaario: Vedä tietty osa tekstiarvosta. Hae ensimmäiset N merkkiä, viimeinen N tai alue keskeltä.

Lauseke:

  • Vasen: substring(variables('text'), 0, 5)
  • Oikea: substring(variables('text'), sub(length(variables('text')), 5), 5)
  • Puolivälissä: substring(variables('text'), 3, 4)

Esimerkki: substring('Invoice-2026-0042', 8, 4) palauttaa 2026

Vinkki

Toinen parametri on alkamisindeksi (0-pohjainen), kolmas on pituus, ei loppuindeksi. substring('ABCDE', 1, 3) palauttaa arvon BCD, ei BC.

3. Korvaa teksti

Skenaario: Tyhjennä tai muunna tekstiarvoja. Poista merkkejä, vaihda erottimia, korjaa muotoilu.

Lauseke: replace(variables('input'), 'old', 'new')

Esimerkki: replace('2026/03/18', '/', '-') palauttaa 2026-03-18

Huomautus

replace() kirjainkoko on merkitsevä. replace('Hello', 'hello', 'Hi') palauttaa Hello muuttumattomana. Muunna tarvittaessa ensin yleiseksi tapaumiseksi.

4. Jaa merkkijono matriisiin

Skenaario: Voit katkaista erotellun arvon (CSV, puolipistein erotellut sähköpostiviestit) yksittäisiksi kohteiksi silmukoita varten.

Lauseke: split(variables('input'), ',')

Esimerkki: split('alice@contoso.com,bob@contoso.com,carol@contoso.com', ',') palauttaa ["alice@contoso.com","bob@contoso.com","carol@contoso.com"]

Vinkki

Erottimen jälkeiset välilyönnit säilytetään. split('a, b, c', ',') palauttaa ["a"," b"," c"] alussa olevat välilyönnit. Käytä trim() kutakin kohdetta Valitse-toiminnossa sen jälkeen.

5. Yhdistä rivinvaihtoihin (sähköpostiviesteihin)

Skenaario: Luo monirivinen viestien leipäteksti sähköposti- tai Teams-ilmoituksia varten.

Lauseke: concat('Line 1', decodeUriComponent('%0A'), 'Line 2')

Example: käytä decodeUriComponent('%0A')-decodeUriComponent('%0D%0A')-komentoa Windows tyylisille rivinvaihdoille.

Tärkeää

Suoraan lausekkeissa käyttäminen \n ei tuota rivinvaihtoa. Se tulostaa literaalimerkit \n. Käytä aina -menetelmää decodeUriComponent tai käytä <br> , jos tuloste on HTML.

6. Tarkista, sisältääkö merkkijono tekstiä

Skenaario: Reititä työnkulku sen perusteella, sisältääkö aiherivi, sähköpostiviestin leipäteksti vai kenttä avainsanan.

Lauseke: contains(toLower(triggerBody()?['subject']), 'urgent')

Esimerkki: contains('Project Alpha Review', 'Alpha') palauttaa true

Huomautus

contains() kirjainkoko on merkitsevä. Rivitä aina sekä heinäsuova että neula, jos kirjainkoolla toLower() ei ole merkitystä: contains(toLower(value), toLower(search)).

Pvm ja aika

7. Hae nykyinen päivämäärä/aika tietyssä muodossa

Skenaario: Leimaa tiedoston nimi, lokin merkintä tai sähköpostiosoite nykyisellä päivämäärällä ja kellonajalla.

Lauseke: formatDateTime(utcNow(), 'yyyy-MM-dd HH:mm')

Esimerkki: Palauttaa arvon 2026-03-18 14:30 (UTC). Käytetään convertTimeZone() paikallista aikaa varten.

Vinkki

utcNow() on aina UTC. Paikallista aikaa varten ketju , jossa convertTimeZone(utcNow(), 'UTC', 'Eastern Standard Time', 'yyyy-MM-dd HH:mm').

8. Päivien lisääminen päivämäärästä tai vähennys päivien vähentäminen päivämäärästä

Skenaario: Laske määräpäivä, vanhentumispäivä tai muistutuspäivämäärä suhteessa tähän päivään.

Lauseke: addDays(utcNow(), 7) tai addDays(utcNow(), -30)

Esimerkki: Jos tänään on 2026-03-18, addDays(utcNow(), 7) palauttaa arvon 2026-03-25T...Z

Huomautus

addDays() hyväksyy myös murtolukuarvot, mutta addHours() tai addMinutes() ne ovat selkeämpiä alipäivän siirtymälle. Älä käytä tätä addDays(utcNow(), 0.5) , kun tarkoitat addHours(utcNow(), 12).

9. Muunna merkkijono päivämääräksi (jäsennä)

Skenaario: Tekstikenttä sisältää päivämäärän, kuten 03/18/2026 , ja sitä on käytettävä päivämääräfunktioissa.

Lauseke: parseDateTime(variables('dateString'), 'en-US')

Esimerkki: parseDateTime('03/18/2026', 'en-US') palauttaa oikean päivämäärä- ja aika-arvon.

Tärkeää

Ilman aluekohtaisia asetuksia jäsennys riippuu työnkulun aluekohtaisista asetuksista, ja se voi vaihtaa kuukauden/päivän. Määritä aina aluekohtaiset asetukset eksplisiittisesti, jotta niitä ei 03/04/2026 tulkita 3. huhtikuuta ja 4. maaliskuuta.

10. Hae viikonpäivä

Skenaario: Suorita eri logiikka arkipäivinä ja viikonloppuisin tai luo "Maanantai-raportti".

Lauseke: dayOfWeek(utcNow())

Esimerkki: Palauttaa arvon 0 sunnuntai, 1 maanantai, ..., 6 lauantaille.

Vinkki

Sunnuntai on 0, ei 7. Käytä or(equals(dayOfWeek(...), 0), equals(dayOfWeek(...), 6)) viikonlopputarkistuksiin. Ehto, kuten dayOfWeek(utcNow()) > 5 saalis lauantaina, mutta jättää sunnuntain väliin.

11. Laske kahden päivämäärän välinen ero

Skenaario: Selvitä, montako päivää on kulunut pyyntöpäivämäärän ja valmistumispäivämäärän välillä.

Lauseke: div(sub(ticks(variables('endDate')), ticks(variables('startDate'))), 864000000000)

Esimerkki: Jos alku on 2026-03-01 ja loppu on 2026-03-18, palauttaa arvon 17.

Huomautus

Sisäistä funktiota dateDiff() ei ole. Sinun on käytettävä jakoviivoja. Jakaja 864000000000 muuntaa jakoviivoja päiviksi. Käytä tunteina 36000000000merkkiä ; minuuttien ajan käytä 600000000.

12. Muotoile näyttöpäivämäärä

Skenaario: Muunna datetime-arvo ihmisen luettavaan muotoon sähköpostiviestejä tai raportteja varten.

Lauseke: formatDateTime(variables('myDate'), 'MMMM dd, yyyy') tai formatDateTime(variables('myDate'), 'MM/dd/yyyy')

Esimerkki: formatDateTime('2026-03-18T14:30:00Z', 'MMMM dd, yyyy') palauttaa March 18, 2026

Tärkeää

MM on kuukaudet, mm on minuuttia. formatDateTime(value, 'mm/DD/yyyy') tuottaa arvon (minuutit 30/18/2026 ja päivä) :n 03/18/2026sijaan. Käytä dd kuukaudenpäivän osalta (pieniä kirjaimia).

Matriisit ja kokoelmat

13. Suodata matriisi ehdon mukaan

Skenaario: Hae vain ne matriisin kohteet, jotka vastaavat tiettyä kriteeriä.

Lauseke: Käytä Suodata matriisi - toimintoa yhdessä: @item()?['Status'] on yhtä suuri kuin 'Active'

Esimerkki: Syötteen [{Name:'A', Status:'Active'}, {Name:'B', Status:'Closed'}] palautus [{Name:'A', Status:'Active'}]

Huomautus

Et voi käyttää -tyylin wheresuodatinlauseketta sisäisesti. Käytä Suodata matriisi -toimintoa (ei lauseketta). Käytä lausekepohjaista suodatusta @equals(item()?['Status'], 'Active') Suodata-matriisin lisätilassa.

14. Hae ensimmäinen tai viimeinen kohde matriisissa

Skenaario: nouda uusin tietue tai ensimmäinen vastaavuus luettelosta.

Lauseke: first(variables('myArray')) tai last(variables('myArray'))

Example: first(body('Get_items')?['value']) palauttaa SharePoint kyselyn ensimmäisen kohteen.

Vinkki

first() tyhjässä matriisissa palauttaa nullarvon , ei virhettä. Seuraa aina tyhjäarvoisen tarkistuksen kanssa: if(empty(variables('myArray')), null, first(variables('myArray'))).

15. Laske kohteet matriisissa

Skenaario: Tarkista, montako tulosta kysely palautti, tai varmista, että luettelossa on riittävästi kohteita.

Lauseke: length(variables('myArray'))

Example: length(body('Get_items')?['value']) palauttaa SharePoint list kyselyn kohteiden määrän.

Huomautus

length() toimii sekä matriiseissa että merkkijonoissa. length('hello') palauttaa arvon 5 (merkkimäärä). Varmista, että olet välittämässä matriisin, ei merkkijonoa, joka näyttää matriisilta.

16. Luo pilkuin eroteltu merkkijono matriisissa (liitos)

Skenaario: Muunna nimien, sähköpostiviestien tai tunnusten luettelo yksittäiseksi erotelluksi merkkijonoksi tai ohjelmointirajapinnan kutsuksi.

Lauseke: join(variables('myArray'), ', ')

Esimerkki: join(createArray('Alice', 'Bob', 'Carol'), '; ') palauttaa Alice; Bob; Carol

Vinkki

join() toimii merkkijonomatriiseissa. Jos matriisi sisältää objekteja, pura haluamasi kenttä ensin Select-toiminnolla ja liity sitten tulokseen.

17. Tarkista, sisältääkö matriisi arvon

Skenaario: Selvitä ennen jatkamista, onko luettelossa tietty kohde olemassa.

Lauseke: contains(variables('myArray'), 'searchValue')

Esimerkki: contains(createArray('North', 'South', 'East', 'West'), 'East') palauttaa true

Huomautus

Jos kyseessä on objektimatriisi, contains() tarkista koko objekti, ei ominaisuuden arvoa. Voit tarkistaa, onko objektilla vastaavaa ominaisuutta, käyttämällä Suodata matriisi -toimintoa ja tarkistamalla length() sitten tuloksen.

JSON ja objektit

18. Jäsennä JSON-merkkijono

Skenaario: HTTP-toiminto tai mukautettu liitin palauttaa JSON-merkkijonon, jota sinun on käytettävä jäsennettyinä tietoina.

Lauseke: json(body('HTTP'))

Esimerkki: json('{"name":"Alice","age":30}') palauttaa objektin, jota voit käyttää :n avulla ?['name'].

Tärkeää

Älä tee kaksoisnapsautusta. Jos toiminto palauttaa jo jäsennetyn JSON-kohteen (useimmat liitintoiminnot tekevät), sen json() rivitys uudelleen aiheuttaa virheen. Käytä json() vain raakamerkkijonovastauksissa, ei toimintotulosteissa, jotka ovat jo objekteja.

19. Hae sisäkkäinen ominaisuus JSON:stä

Skenaario: Käytä arvoa Syvällä JSON-vastauksessa, esimerkiksi response.data.items[0].name.

Lauseke: body('HTTP')?['data']?['items']?[0]?['name']

Esimerkki: palauttaa funktiolle {"data":{"items":[{"name":"Widget"}]}}Widget.

Tärkeää

Muista ? (turvallinen navigointi). body('HTTP')['data']['items'] aiheuttaa virheen, jos jokin taso on tyhjäarvo. ?['key'] Käytä aina turvallisesti läpikulkuun: jokainen ? palauttaa tyhjäarvon sen sijaan, että se epäonnistuisi, jos pääkohde puuttuu.

20. Luo JSON-objekti arvoista

Skenaario: Luo HTTP-toiminnolle pyynnön leipäteksti työnkulun muuttujista ja dynaamisesta sisällöstä.

Lauseke: json(concat('{"name":"', variables('name'), '","status":"', variables('status'), '"}'))

Esimerkki: Kun nimi=Alice ja status=Active, palauttaa arvon {"name":"Alice","status":"Active"}.

Vinkki

Jos jokin muuttuja sisältää lainausmerkkejä tai erikoismerkkejä, JSON on epämuodostunut. Jos olet erittäin tehokas rakenne, käytä Laadi-toimintoa createObject('name', variables('name'), 'status', variables('status')) tai rakenna se suoraan Laadi-toiminnossa.

21. Muunna objekti merkkijonoksi

Skenaario: Kirjaa JSON-objekti tekstikenttään tai välitä jäsennettyjä tietoja merkkijonoparametrina.

Lauseke: string(variables('myObject'))

Esimerkki: string(json('{"a":1}')) palauttaa {"a":1} merkkijonona.

Huomautus

string() -matriisissa tai -objektissa tämä tuottaa kompaktin JSON-kohteen (ei melko tulostettavaa). Sisäistä .-sisäänrakennettua prettyPrint()ei ole. Hyväksy kompakti JSON tai muotoiltu teksti manuaalisesti.

22. Käsittele tyhjäarvot tai tyhjät arvot turvallisesti

Skenaario: Estä virheitä, kun kenttä voi olla tyhjäarvoinen, tyhjä tai puuttuu kokonaan.

Lauseke: coalesce(triggerBody()?['optionalField'], 'default value')

Esimerkki: Jos optionalField on tyhjäarvo, palauttaa arvon 'default value'. Jos sillä on arvo, palauttaa sen arvon.

Tärkeää

coalesce() käsittelee vain merkkijonoja null, ei tyhjiä merkkijonoja. Yhdistä tyhjille merkkijonoille ehtoon: if(empty(triggerBody()?['field']), 'default', triggerBody()?['field']). Funktio empty() palauttaa arvon true sekä tyhjäarvoiselle että tyhjälle merkkijonolle ''.

Luvut ja matematiikka

23. Pyöristä luku

Skenaario: Näytä prosentti- tai valuutta-arvo, jolla on kiinteä määrä desimaaleja.

Lauseke: formatNumber(variables('value'), 'N2') (näytetään) tai div(mul(variables('value'), 100), 100) (katkaisua varten)

Esimerkki: formatNumber(3.14159, 'N2') palauttaa 3.14 merkkijonona.

Huomautus

formatNumber() palauttaa merkkijonon, ei lukua. Jos haluat tehdä laskutoimitinta pyöristetylle arvolle, jäsentä se takaisin: float(formatNumber(variables('value'), 'N2')).

24. Muunna merkkijono luvuksi (ja takaisin)

Skenaario: Lomake tai sähköposti antaa numeron tekstinä, ja sinun on tehtävä laskutoimitin sen kanssa.

Lauseke: int(variables('textNumber')) tai float(variables('textNumber')) ja string(variables('numericValue'))

Esimerkki: int('42') palauttaa arvon 42. float('3.14') palauttaa arvon 3.14. string(42) palauttaa arvon '42'.

Tärkeää

int() aiheuttaa virheen desimaalimerkkijonossa. Se ei katkea. Jos muuttuja saattaa sisältää desimaalin, käytä float() ensin seuraavaa: int(float(variables('input'))). Vakioarvojen, kuten int('3.14'), tapauksessa virhe saadaan näkyviin säästämisaikana (InvalidTemplate), ei suorituksen aikana.

25. Laske prosenttiosuus

Skenaario: Näytä, mikä murtoluku yksi arvo on toisesta (esimerkiksi suoritusaste, käyttöaste).

Lauseke: mul(div(float(variables('part')), float(variables('total'))), 100)

Esimerkki: Kun part=75 ja total=200, palauttaa arvon 37.5.

Tärkeää

Kokonaisluvun jakokat. div(75, 200) palauttaa 0 arvon , koska molemmat ovat kokonaislukuja. Muunna aina ensin liukulukuksi: div(float(75), float(200)) palauttaa arvon 0.375.

Ehdot ja logiikka

26. If/then/else lausekkeessa

Skenaario: Palauta eri arvot ehdon perusteella lisäämättä Ehto-toimintoa työnkulkuun.

Lauseke: if(equals(variables('status'), 'Approved'), 'Proceed', 'Wait')

Esimerkki: Jos tila on Approved, palauttaa arvon Proceed. Muussa tapauksessa se palauttaa Wait.

Huomautus

-if()funktio ei tue >< suoraan -operaattoreita. Käytä apufunktioita: if(greater(variables('count'), 10), 'Over', 'Under'). Käytettävissä olevat vertailut: equals(), greater(), less(), greaterOrEquals(), . lessOrEquals()

27. Coalesce (ensimmäinen muu kuin tyhjäarvo)

Skenaario: Kokeile useita kenttiä ja käytä ensimmäistä, jolla on arvo, esimerkiksi ensisijainen nimi, näyttönimi ja sähköposti.

Lauseke: coalesce(triggerBody()?['preferredName'], triggerBody()?['displayName'], triggerBody()?['email'], 'Unknown')

Esimerkki: Jos preferredName on tyhjäarvo ja displayName on 'Alice', palauttaa arvon Alice.

Vinkki

coalesce() ohittaa merkkijonot null , mutta ei tyhjiä merkkijonoja ''. Tyhjä merkkijono on kelvollinen arvo, joka ei ole tyhjäarvo. Yhdistä aputoimintoon, jos tyhjät merkkijonot tulisi myös ohittaa: coalesce(if(empty(A), null, A), if(empty(B), null, B), 'default').

28. Tarkista, onko arvo tyhjäarvo vai tyhjä

Skenaario: Varmista, että pakollisella kentällä on käytettävissä oleva arvo ennen käsittelyä.

Lauseke: empty(variables('input'))

Esimerkki: empty('') palauttaa arvon true. empty(null) palauttaa arvon true. empty('hello') palauttaa arvon false.

Tärkeää

empty() ei toimi luvuissa. empty(0) aiheuttaa virheen. Käytä lukujen osalta equals(variables('num'), null) tyyppiä tai tarkista se ensin.

29. Vertaa päivämääriä (on päivämäärä A päivämäärän jälkeen B?)

Skenaario: Tarkista, läpäisikö määräaika tai tapahtuiko jokin tapahtuma ennen toista.

Lauseke: greater(ticks(variables('dateA')), ticks(variables('dateB')))

Esimerkki: greater(ticks('2026-03-18'), ticks('2026-03-15')) palauttaa arvon true (18. maaliskuuta on 15. maaliskuuta jälkeen).

Tärkeää

Päivämäärämerkkijonojen vertaaminen suoraan greater('2026-03-18', '2026-03-15') toimintoihin, jotka toimivat ISO-muodossa (YYYY-MM-DD), koska se lajitellaan sanastollisesti. Mutta se epäonnistuu muissa muodoissa. greater('03/18/2026', '12/01/2025')palauttaa arvon false , koska0<1 . ticks() Käytä aina luotettavaan päivämäärävertailuun.

30. Totuusarvologiikka (AND/OR ehdoissa)

Skenaario: Yhdistä useita ehtoja yhteen lausekkeeseen, esimerkiksi hyväksytty JA summa > 1000.

Lauseke: and(equals(variables('status'), 'Approved'), greater(variables('amount'), 1000))

Esimerkki: Palauttaa vain true , jos tila on yhtä suuri Approved ja määrä on suurempi kuin 1000.

Huomautus

Syntaksin kanssaand/orei voi ketjua.&&/|| Käytä aina funktiolomaketta. Jos kyseessä on monimutkainen logiikka, aseta ne sisäkkäin: or(and(A, B), and(C, D)). Luettavuus heikkenee syvän sisäkkäisyysasteen avulla. Harkitse Ehto-toiminnon käyttämistä useiden rivien kanssa.

Pikaviittauskortti

Tehtävä Lauseke
Isot kirjaimet toUpper(value)
Pienet kirjaimet toLower(value)
Alimerkkijono substring(value, start, length)
Korvaa replace(value, old, new)
Split split(value, delimiter)
Sisältää (teksti) contains(toLower(value), toLower(search))
Nyt (muotoiltu) formatDateTime(utcNow(), 'yyyy-MM-dd')
Päivien lisääminen addDays(date, count)
Viikonpäivä dayOfWeek(date) (0 = su)
Päivien väli div(sub(ticks(end), ticks(start)), 864000000000)
Ensimmäinen kohta first(array)
Viimeinen kohde last(array)
Määrä length(array)
Liittyä join(array, delimiter)
Jäsennä JSON json(stringValue)
Turvallinen ominaisuus object?['key']
Tyhjäarvoinen vara vara coalesce(value, default)
On tyhjä empty(value)
Jos/muu if(condition, trueVal, falseVal)
Päivämäärien vertaileminen greater(ticks(dateA), ticks(dateB))
Int merkkijonosta int(stringValue)
Liukuluku merkkijonosta float(stringValue)
JA and(condA, condB)
TAI or(condA, condB)

Huomautus: Artikkelin tekijä on luonut tämän artikkelin tekoälyn avulla. Lisätietoja