Muistiinpano
Tämän sivun käyttö edellyttää valtuutusta. Voit yrittää kirjautua sisään tai vaihtaa hakemistoa.
Tämän sivun käyttö edellyttää valtuutusta. Voit yrittää vaihtaa hakemistoa.
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) |
Liittyvät tiedot
- Pilvityönkulun virhekoodiviitteet
- Pilvipalvelutyönkulkuvirheiden vianmääritys
- Käytä lausekkeita ehdoissa
- Työnkulkulausekefunktioiden viittaus
- Power Automate rajoitukset ja konfigurointi
Huomautus: Artikkelin tekijä on luonut tämän artikkelin tekoälyn avulla. Lisätietoja