Pastaba.
Prieigai prie šio puslapio reikalingas įgaliojimas. Galite bandyti prisijungti arba pakeisti katalogus.
Prieigai prie šio puslapio reikalingas įgaliojimas. Galite bandyti pakeisti katalogus.
Šiame straipsnyje aiškinama 30 paruoštų naudoti reiškinių šablonų, skirtų įprastiems scenarijams Power Automate debesies srautuose. Galite kopijuoti, pritaikyti ir naudoti šiuos modelius srautuose.
Pastaba.
Šios išraiškos veikia visose Power Automate debesies srauto licencijų pakopose. Darbo eigos išraiškos funkcijose raskite visą funkcijos nuorodą.
Teksto operacijos
1. Konvertuoti į didžiąsias arba mažąsias raides
Scenarijus: normalizuokite vartotojo įvestį prieš palyginimą arba saugojimą.
Išraiška: toUpper(variables('input')) arba toLower(variables('input'))
Pavyzdys: toLower('John.Smith@Contoso.COM') grąžinimas john.smith@contoso.com
Svarbu
toUpper() skiria didžiąsias ir mažąsias raides, kai naudojama palyginimuose. Jei naudojate toUpper(A) = B, įsitikinkite, kad ją pritaikote abiejose pusėse.
toUpper(A) = B neveikia, jei B yra mišrus atvejis.
2. Išskleisti dalinę eilutę (kairėje, dešinėje, viduryje)
Scenarijus: ištraukite konkrečią teksto reikšmės dalį. Gaukite pirmus N simbolius, paskutinius N arba diapazoną nuo vidurio.
Išraiška:
- Į kairę:
substring(variables('text'), 0, 5) - Į dešinę:
substring(variables('text'), sub(length(variables('text')), 5), 5) - Vidurio:
substring(variables('text'), 3, 4)
Pavyzdys: substring('Invoice-2026-0042', 8, 4) grąžinimas 2026
Arbatpinigiai
Antrasis parametras yra pradžios indeksas (0 pagrįstas), trečiasis – ilgis, o ne pabaigos indeksas.
substring('ABCDE', 1, 3) grąžina BCD, o ne BC.
3. Teksto keitimas
Scenarijus: teksto reikšmių valymas arba keitimas. Pašalinkite simbolius, sukeiskite skyriklius, pataisykite formatavimą.
Išraiška: replace(variables('input'), 'old', 'new')
Pavyzdys: replace('2026/03/18', '/', '-') grąžinimas 2026-03-18
Pastaba.
replace() skiria didžiąsias ir mažąsias raides.
replace('Hello', 'hello', 'Hi') grąžinama Hello nepakitusi. Pirmiausia, jei reikia, konvertuokite į bendrąjį atvejį.
4. Išskaidykite eilutę į masyvą
Scenarijus: atskirti atskirtąją reikšmę (CSV, kabliataškiais atskirtus el. laiškus) į atskirus elementus, kad būtų galima cikluoti.
Išraiška: split(variables('input'), ',')
Pavyzdys: split('alice@contoso.com,bob@contoso.com,carol@contoso.com', ',') grąžinimas ["alice@contoso.com","bob@contoso.com","carol@contoso.com"]
Arbatpinigiai
Išsaugomi tarpai po skyriklio.
split('a, b, c', ',') grįžta ["a"," b"," c"] su priekiniais tarpais. Naudoti trim() kiekvienam veiksmo Pasirinkti elementui po to.
5. Sujungimas su eilučių lūžiais (el. Laiškams)
Scenarijus: sukurkite kelių eilučių pranešimo tekstą el. paštui arba "Teams" pranešimams.
Išraiška: concat('Line 1', decodeUriComponent('%0A'), 'Line 2')
Example: naudokite decodeUriComponent('%0A') naujai eilutei arba decodeUriComponent('%0D%0A') Windows stiliaus eilučių lūžiams.
Svarbu
Naudojant \n tiesiogiai reiškiniuose, eilutės lūžis nesukuria. Jis išveda raidinius simbolius \n. Visada naudokite decodeUriComponent metodą arba naudokite <br> , jei išvestis yra HTML.
6. Patikrinkite, ar eilutėje yra teksto
Scenarijus: nukreipti srautą atsižvelgiant į tai, ar temos eilutėje, el. laiško tekste ar lauke yra raktinis žodis.
Išraiška: contains(toLower(triggerBody()?['subject']), 'urgent')
Pavyzdys: contains('Project Alpha Review', 'Alpha') grąžinimas true
Pastaba.
contains() skiria didžiąsias ir mažąsias raides. Visada suvyniokite ir šieno dėdę, ir adatą toLower() , kad atitiktų nejautrų atvejį: contains(toLower(value), toLower(search)).
Data ir laikas
7. Gauti dabartinę datą / laiką konkrečiu formatu
Scenarijus: pažymėkite failo vardą, žurnalo įrašą arba el. laišką su dabartine data ir laiku.
Išraiška: formatDateTime(utcNow(), 'yyyy-MM-dd HH:mm')
Pavyzdys: pateikia 2026-03-18 14:30 (UTC). Naudokite convertTimeZone() vietiniam laikui.
Arbatpinigiai
utcNow() visada yra UTC. Vietiniam laikui, grandinė su convertTimeZone(utcNow(), 'UTC', 'Eastern Standard Time', 'yyyy-MM-dd HH:mm').
8. Dienų pridėjimas arba atėmimas iš datos
Scenarijus: suskaičiuokite termino datą, galiojimo pabaigos datą arba priminimo datą, susijusią su šiandiena.
Išraiška: addDays(utcNow(), 7) arba addDays(utcNow(), -30)
Pavyzdys: Jei šiandien yra 2026-03-18, addDays(utcNow(), 7) pateikia 2026-03-25T...Z
Pastaba.
addDays() taip pat priima trupmenines reikšmes, bet addHours() arba addMinutes() yra aiškesnės antrinių dienų poslinkiams. Nenaudokite addDays(utcNow(), 0.5) , kai norite pasakyti addHours(utcNow(), 12).
9. Konvertuoti eilutę į datą (sintaksė)
Scenarijus: teksto lauke yra data, panaši 03/18/2026 į ir ją reikia naudoti datos funkcijose.
Išraiška: parseDateTime(variables('dateString'), 'en-US')
Pavyzdys: parseDateTime('03/18/2026', 'en-US') pateikia tinkamą datetime reikšmę.
Svarbu
Be lokalės parametro analizė priklauso nuo srauto regiono parametrų ir gali sukeisti mėnesį / dieną. Visada nurodykite lokalę, kad nebūtų 03/04/2026 interpretuojama kaip balandžio 3 d. ir kovo 4 d.
10. Gaukite savaitės dieną
Scenarijus: darbo dienomis ir savaitgaliais vykdykite kitokią logiką arba sugeneruokite pirmadienio ataskaitą.
Išraiška: dayOfWeek(utcNow())
Pavyzdys: pateikia 0 sekmadieniui, 1 pirmadienį, ..., 6 šeštadieniui.
Arbatpinigiai
Sekmadienis yra 0, ne 7. Naudokite or(equals(dayOfWeek(...), 0), equals(dayOfWeek(...), 6)) savaitgalio patikrinimams. Sąlyga, pvz., dayOfWeek(utcNow()) > 5 gaudo šeštadienį, bet praleidžia sekmadienį.
11. Skirtumo tarp dviejų datų apskaičiavimas
Scenarijus: nustatykite, kiek dienų praėjo nuo užklausos datos iki baigimo datos.
Išraiška: div(sub(ticks(variables('endDate')), ticks(variables('startDate'))), 864000000000)
Pavyzdys: Jei pradžia yra 2026-03-01 , o pabaiga yra 2026-03-18, pateikia 17.
Pastaba.
Nėra įtaisytosios dateDiff() funkcijos. Turite naudoti erkių metodą. Daliklis 864000000000 konvertuoja erkes į dienas. Valandoms naudokite 36000000000; minutėms naudokite 600000000.
12. Rodymo datos formatavimas
Scenarijus: konvertuokite datos ir laiko reikšmę į žmonėms perskaitomą el. laiškų arba ataskaitų formatą.
Išraiška: formatDateTime(variables('myDate'), 'MMMM dd, yyyy') arba formatDateTime(variables('myDate'), 'MM/dd/yyyy')
Pavyzdys: formatDateTime('2026-03-18T14:30:00Z', 'MMMM dd, yyyy') grąžinimas March 18, 2026
Svarbu
MM yra mėnesiai, mm minutės.
formatDateTime(value, 'mm/DD/yyyy')
30/18/2026 (minutes ir dieną), o ne 03/18/2026. Naudokite dd (mažosiomis raidėmis) mėnesio dieną.
Masyvai ir rinkiniai
13. Masyvo filtravimas pagal sąlygą
Scenarijus: gaukite tik elementus iš masyvo, kuris atitinka konkretų kriterijų.
Išraiška: naudokite veiksmą Filtruoti masyvą su: @item()?['Status'] lygu 'Active'
Pavyzdys: įvesties grąžinimai [{Name:'A', Status:'Active'}, {Name:'B', Status:'Closed'}][{Name:'A', Status:'Active'}]
Pastaba.
Įdėtojo wherestiliaus filtro išraiškos naudoti negalima. Naudokite veiksmą Filtruoti masyvą (ne išraišką). Norėdami filtruoti pagal reiškinį, naudokite @equals(item()?['Status'], 'Active') išplėstinį filtro masyvo režimą.
14. Gauti pirmą arba paskutinį elementą iš masyvo
Scenarijus: gaukite naujausią įrašą arba pirmąjį atitikmenį iš sąrašo.
Išraiška: first(variables('myArray')) arba last(variables('myArray'))
Example: first(body('Get_items')?['value']) grąžina pirmąjį elementą iš SharePoint užklausos.
Arbatpinigiai
first() tuščio masyvo grąžinama null, o ne klaida. Visada vykdyti su neapibrėžta patikra: if(empty(variables('myArray')), null, first(variables('myArray'))).
15. Skaičiuoti masyvo elementus
Scenarijus: patikrinkite, kiek rezultatų pateikė užklausa, arba patikrinkite, ar sąraše yra pakankamai elementų.
Išraiška: length(variables('myArray'))
Example: length(body('Get_items')?['value']) pateikia elementų skaičių iš SharePoint list užklausos.
Pastaba.
length() veikia ir masyvuose, ir eilutėse.
length('hello') grąžina 5 (simbolių skaičius). Įsitikinkite, kad perduodate masyvą, o ne eilutę, kuri atrodo kaip masyvas.
16. Sukurkite kableliais atskirtą eilutę iš masyvo (sujungimo)
Scenarijus: vardų, el. laiškų arba ID sąrašą konvertuokite į vieną atskirtą eilutę, skirtą rodyti arba API iškvietimui.
Išraiška: join(variables('myArray'), ', ')
Pavyzdys: join(createArray('Alice', 'Bob', 'Carol'), '; ') grąžinimas Alice; Bob; Carol
Arbatpinigiai
join() veikia su eilučių masyvais. Jei masyve yra objektų, pirmiausia naudokite veiksmą Pasirinkti , kad išskleistumėte norimą lauką, tada sujunkite rezultatą.
17. Patikrinkite, ar masyve yra reikšmė
Scenarijus: prieš tęsdami nustatykite, ar sąraše yra konkretus elementas.
Išraiška: contains(variables('myArray'), 'searchValue')
Pavyzdys: contains(createArray('North', 'South', 'East', 'West'), 'East') grąžinimas true
Pastaba.
Objektų masyvuose tikrinamas visas objektas contains() , o ne ypatybės reikšmė. Norėdami patikrinti, ar kuris nors objektas turi atitinkančią ypatybę, naudokite veiksmą Filtruoti masyvą ir patikrinkite length() rezultatą.
JSON ir objektai
18. Analizuoti JSON eilutę
Scenarijus: HTTP veiksmas arba pasirinktinė jungtis pateikia JSON eilutę, kurią reikia naudoti kaip struktūrinius duomenis.
Išraiška: json(body('HTTP'))
Pavyzdys: json('{"name":"Alice","age":30}') pateikia objektą, kurį galite pasiekti naudodami ?['name'].
Svarbu
Neanalizuokite du kartus. Jei veiksmas jau pateikia analizuojamą JSON (atlieka dauguma jungties veiksmų), keliant jį json() vėl įvyksta klaida. Naudokite json() tik neapdorotuose eilutės atsakymuose, o ne veiksmo išvestyse, kurios jau yra objektai.
19. Gauti įdėtąsias ypatybes iš JSON
Scenarijus: pasiekite reikšmę giliai JSON atsakyme, pvz., response.data.items[0].name.
Išraiška: body('HTTP')?['data']?['items']?[0]?['name']
Pavyzdys: For {"data":{"items":[{"name":"Widget"}]}}, returns Widget.
Svarbu
Nepamirškite ? (saugus naršymas).
body('HTTP')['data']['items'] įvyksta klaida, jei kuris nors lygis yra nulinis. Visada naudokite ?['key'] , kad saugiai naršytumėte: kiekvienas ? pateikia nulį, o ne ydingą, jei trūksta pirminio elemento.
20. Kurti JSON objektą iš reikšmių
Scenarijus: sukurkite HTTP veiksmo užklausos tekstą iš srauto kintamųjų ir dinaminio turinio.
Išraiška: json(concat('{"name":"', variables('name'), '","status":"', variables('status'), '"}'))
Pavyzdys: Su name=Alice ir status=Active, pateikia {"name":"Alice","status":"Active"}.
Arbatpinigiai
Jei kintamajame yra kabučių ar specialiųjų simbolių, JSON bus blogai suformuotas. Norėdami sukurti patikimą konstrukciją, naudokite veiksmą Kurti su createObject('name', variables('name'), 'status', variables('status')) arba tiesiogiai sukurkite jį kūrimo veiksme.
21. Konvertuoti objektą į eilutę
Scenarijus: užregistruokite JSON objektą į teksto lauką arba perduokite struktūrinius duomenis kaip eilutės parametrą.
Išraiška: string(variables('myObject'))
Pavyzdys: string(json('{"a":1}')) pateikia {"a":1} kaip eilutę.
Pastaba.
string() masyve ar objekte sukuria kompaktišką JSON (nėra gražaus spausdinimo). Nėra įtaisytųjų prettyPrint(). Suglaudintą JSON arba komponavimo versiją suformatuotą tekstą priimkite rankiniu būdu.
22. Saugiai tvarkykite nulines arba tuščias reikšmes
Scenarijus: išvengti klaidų, kai laukas gali būti neapibrėžtas, tuščias arba visiškai jo nėra.
Išraiška: coalesce(triggerBody()?['optionalField'], 'default value')
Pavyzdys: If optionalField is null, returns 'default value'. Jei ji turi reikšmę, grąžina tą reikšmę.
Svarbu
coalesce() tik tvarko null, o ne tuščias eilutes. Tuščių eilučių atveju sujunkite su sąlyga: if(empty(triggerBody()?['field']), 'default', triggerBody()?['field']). Funkcija empty() pateikia teisingą tiek nulinės, tiek tuščios eilutės reikšmę ''.
Skaičiai ir matematika
23. Skaičiaus apvalinimas
Scenarijus: rodyti procentinę arba valiutos reikšmę su fiksuotu dešimtainių skilčių skaičiumi.
Išraiška: formatNumber(variables('value'), 'N2') (rodoma) arba div(mul(variables('value'), 100), 100) (sutrumpinti)
Pavyzdys: formatNumber(3.14159, 'N2') pateikia 3.14 kaip eilutę.
Pastaba.
formatNumber() pateikia eilutę, o ne skaičių. Jei reikia atlikti daugiau matematinių veiksmų su suapvalinta reikšme, analizuokite ją: float(formatNumber(variables('value'), 'N2')).
24. Konvertuoti eilutę į skaičių (ir atgal)
Scenarijus: forma arba el. laiškas skaičių pateikia kaip tekstą ir jums reikia atlikti matematinius veiksmus.
Išraiška: int(variables('textNumber')) arba float(variables('textNumber')) ir string(variables('numericValue'))
Pavyzdys: int('42') pateikia 42.
float('3.14')grąžina .3.14
string(42)grąžina .'42'
Svarbu
int() dešimtainė eilutė pateikia klaidą; ji nesutrumtrumi. Jei kintamajame gali būti dešimtainis skaičius, pirmiausia naudokite float() : int(float(variables('input'))). Su konstantų reikšmėmis, pvz int('3.14')., klaida sugaišta sutaupyus laiko (InvalidTemplate), o ne vykdymo metu.
25. Procentų skaičiavimas
Scenarijus: rodyti, kokia vienos trupmenos reikšmė yra kitos reikšmės (pvz., baigimo koeficientas, naudojimas).
Išraiška: mul(div(float(variables('part')), float(variables('total'))), 100)
Pavyzdys: With part=75 and total=200, returns 37.5.
Svarbu
Sveikojo skaičiaus dalyba trumpinama.
div(75, 200) grąžinama 0 , nes abu yra sveikieji skaičiai. Visada pirmiausia konvertuoti į slankią: div(float(75), float(200)) pateikia 0.375.
Sąlyginės sąlygos ir logika
26. Jei / tada / kitas reiškinyje
Scenarijus: pateikti skirtingas reikšmes pagal sąlygą, neįtraukiant veiksmo Sąlyga į srautą.
Išraiška: if(equals(variables('status'), 'Approved'), 'Proceed', 'Wait')
Pavyzdys: Jei būsena yra Approved, pateikia Proceed. Kitu atveju grąžina Wait.
Pastaba.
Ši if() funkcija tiesiogiai nepalaiko >< operatorių. Naudokite pagalbines funkcijas: if(greater(variables('count'), 10), 'Over', 'Under'). Galimi palyginimai: equals(), greater(), less(), greaterOrEquals(), lessOrEquals().
27. Susaidinimas (pirmoji neapibrėžta reikšmė)
Scenarijus: išbandykite kelis laukus ir naudokite pirmąjį, kuriame yra reikšmė, pvz., pageidaujamą vardą, rodomą vardą, el. pašto adresą.
Išraiška: coalesce(triggerBody()?['preferredName'], triggerBody()?['displayName'], triggerBody()?['email'], 'Unknown')
Pavyzdys: Jei preferredName yra neapibrėžtas, o displayName yra 'Alice', pateikia Alice.
Arbatpinigiai
coalesce()
null praleidžia, bet ne tuščias eilutes''. Tuščia eilutė yra leistina ne nulinė reikšmė. Jei tuščios eilutės taip pat turėtų būti praleistos, sujunkite su pagalbiniu padėjėju: coalesce(if(empty(A), null, A), if(empty(B), null, B), 'default').
28. Patikrinkite, ar reikšmė neapibrėžta arba tuščia
Scenarijus: Prieš apdorojimą patikrinkite, ar reikiamame lauke yra naudotina reikšmė.
Išraiška: empty(variables('input'))
Pavyzdys: empty('') pateikia true.
empty(null)grąžina .true
empty('hello')grąžina .false
Svarbu
empty() neveikia su skaičiais.
empty(0) įvyksta klaida. Skaičiuodami skaičius, pirmiausia naudokite equals(variables('num'), null) arba patikrinkite tipą.
29. Palyginti datas (yra data A po datos B?)
Scenarijus: patikrinkite, ar praėjo terminas arba ar vienas įvykis įvyko prieš kitą.
Išraiška: greater(ticks(variables('dateA')), ticks(variables('dateB')))
Pavyzdys: greater(ticks('2026-03-18'), ticks('2026-03-15')) pateikia true (kovo 18 d. yra po kovo 15 d.).
Svarbu
Tiesiogiai palyginant datos eilutes su greater('2026-03-18', '2026-03-15') iso formatu (YYYY-MM-DD), nes jis rūšiuoja lexicographically. Tačiau tai nepavyksta dėl kitų formatų.
greater('03/18/2026', '12/01/2025')grąžinamafalse, nes0<1 . Visada naudokite ticks() patikimam datų palyginimui.
30. Bulio logika (IR/OR sąlygose)
Scenarijus: kelių sąlygų sujungimas viename reiškinyje, pvz., patvirtinta AND suma > 1000.
Išraiška: and(equals(variables('status'), 'Approved'), greater(variables('amount'), 1000))
Pavyzdys: pateikia true tik tada, jei būsena yra lygi Approved , o suma didesnė už 1000.
Pastaba.
Negalite susieti and/or su &&/|| sintakse. Visada naudokite funkcijos formą. Norėdami atlikti sudėtingą logiką, įdėkite juos: or(and(A, B), and(C, D)). Skaitomumas blogina gilų įdėjimą. Verčiau naudokite veiksmą Sąlyga su keliomis eilutėmis.
Sparčiųjų nuorodų kortelė
| Užduotis | „Expression“ |
|---|---|
| Didžiąsias | toUpper(value) |
| Mažosios | toLower(value) |
| Papildoma eilutė | substring(value, start, length) |
| Pakeisti | replace(value, old, new) |
| Skaidyti | split(value, delimiter) |
| Yra (tekstas) | contains(toLower(value), toLower(search)) |
| Dabar (suformatuota) | formatDateTime(utcNow(), 'yyyy-MM-dd') |
| Įtraukti dienų | addDays(date, count) |
| Savaitės diena |
dayOfWeek(date) (0 = Saulė) |
| Dienos tarp | div(sub(ticks(end), ticks(start)), 864000000000) |
| Pirmas elementas | first(array) |
| Paskutinis elementas | last(array) |
| Skaič. | length(array) |
| Prisijungti | join(array, delimiter) |
| Analizuoti JSON | json(stringValue) |
| Saugi ypatybė | object?['key'] |
| Neapibrėžta atsarginė reikšmė | coalesce(value, default) |
| Yra tuščias | empty(value) |
| Jei / kita | if(condition, trueVal, falseVal) |
| Palyginkite datas | greater(ticks(dateA), ticks(dateB)) |
| Sveikasis skaičius iš eilutės | int(stringValue) |
| Slankioja iš eilutės | float(stringValue) |
| IR | and(condA, condB) |
| ARBA | or(condA, condB) |
Susijusi informacija
- Debesies srauto klaidos kodo nuoroda
- Debesies srauto klaidų šalinimas
- Išraiškų naudojimas sąlygose
- Darbo eigos išraiškos funkcijų nuoroda
- Power Automate ribos ir konfigūracija
Pastaba: autorius sukūrė šį straipsnį naudodamas DI. Sužinokite daugiau