הערה
הגישה לדף זה מחייבת הרשאה. באפשרותך לנסות להיכנס או לשנות מדריכי כתובות.
הגישה לדף זה מחייבת הרשאה. באפשרותך לנסות לשנות מדריכי כתובות.
מאמר זה מסביר 30 דפוסי ביטויים מוכנים לשימוש עבור תרחישים נפוצים Power Automate ענן. באפשרותך להעתיק, להתאים ולהשתמש בתבניות אלה בזרימות שלך.
הערה
ביטויים אלה פועלים בכל Power Automate ברשיון זרימת הענן. חפש את ההפניה המלאה לפונקציה בפונקציות ביטוי זרימת עבודה.
פעולות טקסט
1. המרה לאותיות רישיות או קטנות
תרחיש: נרמל קלט משתמש לפני השוואה או אחסון.
ביטוי: toUpper(variables('input')) או toLower(variables('input'))
דוגמה: toLower('John.Smith@Contoso.COM') החזרת john.smith@contoso.com
חשוב
toUpper() הוא תלוי רישיות בעת שימוש בהשוואות. אם אתה משתמש ב toUpper(A) = B- , הקפד להחיל אותה על שני הצדדים.
toUpper(A) = B נכשל אם B הוא מקרה מעורב.
2. חילוץ מחרוזת משנה (שמאל, ימין, אמצע)
תרחיש: משוך חלק מסוים מתוך ערך טקסט. קבל את תווי N הראשונים, N האחרון או טווח מהאמצעי.
ביטוי:
- שמאלה:
substring(variables('text'), 0, 5) - ימין:
substring(variables('text'), sub(length(variables('text')), 5), 5) - אמצע:
substring(variables('text'), 3, 4)
דוגמה: substring('Invoice-2026-0042', 8, 4) החזרת 2026
עצה
הפרמטר השני הוא אינדקס ההתחלה (מבוסס-0), והשלישי הוא האורך, ולא אינדקס הקצה.
substring('ABCDE', 1, 3) מחזיר BCD, לא BC.
3. החלפת טקסט
תרחיש: ניקוי או המרה של ערכי טקסט. הסר תווים, החלף מפרידים, תקן עיצוב.
ביטוי: replace(variables('input'), 'old', 'new')
דוגמה: replace('2026/03/18', '/', '-') החזרת 2026-03-18
הערה
replace() תלוי רישיות.
replace('Hello', 'hello', 'Hi') מחזירה Hello ללא שינוי. המר למקרה נפוץ במידת הצורך.
4. פצל מחרוזת למערך
תרחיש: חלוקה של ערך מופרד (CSV, הודעות דואר אלקטרוני המופרדות באמצעות נקודה-פסיק) לפריטים בודדים לעריכה בלולאה.
ביטוי: split(variables('input'), ',')
דוגמה: split('alice@contoso.com,bob@contoso.com,carol@contoso.com', ',') החזרת ["alice@contoso.com","bob@contoso.com","carol@contoso.com"]
עצה
הרווחים לאחר המפריד נשמרים.
split('a, b, c', ',') מחזירה ["a"," b"," c"] עם רווחים מובילים. השתמש trim() בכל פריט בפעולה בחירה לאחר מכן.
5. שרשור עם מעברי שורה (עבור הודעות דואר אלקטרוני)
תרחיש: בנה גוף הודעה מרובה שורות עבור הודעות דואר אלקטרוני או Teams.
ביטוי: concat('Line 1', decodeUriComponent('%0A'), 'Line 2')
דוגמה: השתמש ב- decodeUriComponent('%0A') עבור קו חדש או decodeUriComponent('%0D%0A') עבור מעברי Windows בסגנון Windows.
חשוב
השימוש \n ישירות בביטויים אינו יוצר מעבר שורה. הוא יוצר פלט של התווים המילטרליים \n. השתמש תמיד בגישה decodeUriComponent , או השתמש בה <br> אם הפלט הוא HTML.
6. בדוק אם מחרוזת מכילה טקסט
תרחיש: ניתוב זרימה בהתבסס על השאלה אם שורת נושא, גוף דואר אלקטרוני או שדה מכילים מילת מפתח.
ביטוי: contains(toLower(triggerBody()?['subject']), 'urgent')
דוגמה: contains('Project Alpha Review', 'Alpha') החזרת true
הערה
contains() תלוי רישיות. יש לעטוף תמיד גם את ערימת שחת toLower() וגם את המחט להתאמה לא תלוית רישיות: contains(toLower(value), toLower(search)).
תאריך ושעה
7. קבלת התאריך/השעה הנוכחיים בתבנית ספציפית
תרחיש: הוספת חותמת שם קובץ, ערך יומן רישום או דואר אלקטרוני עם התאריך והשעה הנוכחיים.
ביטוי: formatDateTime(utcNow(), 'yyyy-MM-dd HH:mm')
דוגמה: החזרת 2026-03-18 14:30 (UTC). השתמש convertTimeZone() לזמן מקומי.
עצה
utcNow() הוא תמיד UTC. לזמן מקומי, שרשרת עם convertTimeZone(utcNow(), 'UTC', 'Eastern Standard Time', 'yyyy-MM-dd HH:mm').
8. חיבור או חיסור של ימים מתאריך
תרחיש: חשב תאריך יעד, תאריך תפוגה או תזכורת ביחס להיום.
ביטוי: addDays(utcNow(), 7) או addDays(utcNow(), -30)
דוגמה: אם today הוא 2026-03-18, addDays(utcNow(), 7) מחזיר 2026-03-25T...Z
הערה
addDays() מקבל גם ערכי שברים, אך בהירים addHours()addMinutes() יותר עבור היסט של יום משנה. אל תשתמש במצבים addDays(utcNow(), 0.5) שבהם אתה מתכוון addHours(utcNow(), 12).
9. המרת מחרוזת לתאריך (ניתוח מבנה טקסט)
תרחיש: שדה טקסט מכיל תאריך כגון 03/18/2026 ועלך להשתמש בו בפונקציות תאריך.
ביטוי: parseDateTime(variables('dateString'), 'en-US')
דוגמה: parseDateTime('03/18/2026', 'en-US') החזרת ערך datetime מתאים.
חשוב
ללא פרמטר האזור, ניתוח הטקסט תלוי בהגדרות האזוריות של הזרימה וניתן להחליף חודש/יום. ציין תמיד את האזור באופן מפורש כדי להימנע 03/04/2026 מפרשנותו כ- 3 באפריל לעומת 4 במרץ.
10. קבל את היום בשבוע
תרחיש: הפעל לוגיקה שונה בימי חול לעומת סופי שבוע, או צור "דוח שני".
ביטוי: dayOfWeek(utcNow())
דוגמה: Returns 0 for Sunday, 1 for Monday, ..., 6 for Saturday.
עצה
יום ראשון הוא 0, לא 7. השתמש עבור or(equals(dayOfWeek(...), 0), equals(dayOfWeek(...), 6)) בדיקת סוף שבוע. תנאי כמו לתפוס dayOfWeek(utcNow()) > 5 שבת אבל מחמיץ את יום ראשון.
11. חישוב ההפרש בין שני תאריכים
תרחיש: קבע כמה ימים חלפו בין תאריך בקשה לתאריך סיום.
ביטוי: div(sub(ticks(variables('endDate')), ticks(variables('startDate'))), 864000000000)
דוגמה: אם start הוא ו 2026-03-01 - end הוא 2026-03-18, מחזיר 17.
הערה
אין פונקציה מוכללת dateDiff() . עליך להשתמש בגישה של שנתות. המחלק ממיר 864000000000 שנתות לימים. עבור שעות, השתמש ב 36000000000- ; עבור דקות, השתמש ב- 600000000.
12. עיצוב תאריך להצגה
תרחיש: המרת ערך תאריך/שעה לתבנית הניתנת לקריאה עבור הודעות דואר אלקטרוני או דוחות.
ביטוי: formatDateTime(variables('myDate'), 'MMMM dd, yyyy') או formatDateTime(variables('myDate'), 'MM/dd/yyyy')
דוגמה: formatDateTime('2026-03-18T14:30:00Z', 'MMMM dd, yyyy') החזרת March 18, 2026
חשוב
MM הוא חודשים, mm הוא דקות.
formatDateTime(value, 'mm/DD/yyyy')
30/18/2026 מייצר (דקות ויום) במקום 03/18/2026. השתמש dd (באותיות קטנות) עבור היום בחודש.
מערכים ואוספים
13. סינון מערך לפי תנאי
תרחיש: קבל רק את הפריטים ממערך התואמים לקריטריונים ספציפיים.
ביטוי: השתמש בפעולה Filter array עם: @item()?['Status'] שווה ל 'Active'
דוגמה: Input [{Name:'A', Status:'Active'}, {Name:'B', Status:'Closed'}] returns [{Name:'A', Status:'Active'}]
הערה
לא ניתן להשתמש בביטוי whereמסנן -style בתוך השורה. השתמש בפעולה Filter array (לא בביטוי). עבור סינון מבוסס ביטויים, השתמש @equals(item()?['Status'], 'Active') במצב המתקדם של מערך הסינון.
14. קבלת הפריט הראשון או האחרון ממערך
תרחיש: אחזר את הרשומה העדכנית ביותר או את ההתאמה הראשונה מתוך רשימה.
ביטוי: first(variables('myArray')) או last(variables('myArray'))
דוגמה: first(body('Get_items')?['value']) מחזירה את הפריט הראשון מתוך שאילתת SharePoint.
עצה
first() במערך ריק מוחזרת null, לא שגיאה. בצע תמיד בדיקת Null: if(empty(variables('myArray')), null, first(variables('myArray'))).
15. ספירת פריטים במערך
תרחיש: בדוק כמה תוצאות החזירה שאילתה, או אמת שרשימה מכילה מספיק פריטים.
ביטוי: length(variables('myArray'))
דוגמה: length(body('Get_items')?['value']) מחזירה את מספר הפריטים מהשאילתה SharePoint list.
הערה
length() פועל הן על מערכים והן על מחרוזות.
length('hello') מחזירה 5 (ספירת תווים). ודא שאתה מעביר מערך, ולא מחרוזת שנראה כמו מערך.
16. יצירת מחרוזת המופרדת באמצעות פסיק ממערך (צירוף)
תרחיש: המר רשימה של שמות, הודעות דואר אלקטרוני או זהים למחרוזת מופרדת יחידה עבור תצוגה או קריאה ל- API.
ביטוי: join(variables('myArray'), ', ')
דוגמה: join(createArray('Alice', 'Bob', 'Carol'), '; ') החזרת Alice; Bob; Carol
עצה
join() פועל על מערכים של מחרוזות. אם המערך מכיל אובייקטים, השתמש תחילה בפעולה Select כדי לחלץ את השדה הרצוי ולאחר מכן צרף את התוצאה.
17. בדוק אם המערך מכיל ערך
תרחיש: קבע אם פריט מסוים קיים ברשימה לפני שתמשיך.
ביטוי: contains(variables('myArray'), 'searchValue')
דוגמה: contains(createArray('North', 'South', 'East', 'West'), 'East') החזרת true
הערה
עבור מערכים של אובייקטים, contains() חיפוש האובייקט כולו, ולא ערך מאפיין. כדי לבדוק אם לאובייקט כלשהו יש מאפיין תואם, השתמש בפעולה של מערך סינון ולאחר מכן בדוק length() את התוצאה.
JSON ואובייקטים
18. ניתוח מחרוזת JSON
תרחיש: פעולת HTTP או מחבר מותאם אישית מחזיר מחרוזת JSON שעליך לעבוד אתה כנתונים מובנים.
ביטוי: json(body('HTTP'))
דוגמה: json('{"name":"Alice","age":30}') החזרת אובייקט שבאפשרותך לגשת באמצעות ?['name'].
חשוב
אל תנתחי פעמיים. אם הפעולה כבר מחזירה JSON שנותן ניתוח (רוב פעולות המחברים כן), גלישתה שוב json() גורמת לשגיאה. השתמש json() רק בתגובות למחרוזת גולמית, ולא בפלט פעולה שכבר קיימים אובייקטים.
19. קבל מאפיין מקונן מ- JSON
תרחיש: גישה לערך עמוק בתוך תגובת JSON, לדוגמה, response.data.items[0].name.
ביטוי: body('HTTP')?['data']?['items']?[0]?['name']
דוגמה: עבור {"data":{"items":[{"name":"Widget"}]}}, מחזיר Widget.
חשוב
אל תשכח את ? (ניווט בטוח).
body('HTTP')['data']['items'] מציין שגיאה אם רמה כלשהי היא Null. השתמש תמיד ?['key'] כדי לנוע בבטחה: כל ? אחד מהם מחזיר ערך Null במקום להיכשל אם האב חסר.
20. יצירת אובייקט JSON מערכים
תרחיש: בנה גוף בקשה עבור פעולת HTTP מתוך משתני זרימה ותוכן דינאמי.
ביטוי: json(concat('{"name":"', variables('name'), '","status":"', variables('status'), '"}'))
דוגמה: With name=Alice ו- status=Active, מחזיר {"name":"Alice","status":"Active"}.
עצה
אם משתנה כלשהו מכיל גרשיים או תווים מיוחדים, מבנה ה- JSON יווצר באופן שגוי. עבור בנייה יציבה, השתמש בפעולה חיבור עם createObject('name', variables('name'), 'status', variables('status')) או בנה אותה בפעולה חיבור ישירות.
21. המרת אובייקט למחרוזת
תרחיש: רשום אובייקט JSON בשדה טקסט, או העברת נתונים מובנים פרמטר מחרוזת.
ביטוי: string(variables('myObject'))
דוגמה: string(json('{"a":1}')) מחזיר {"a":1} כמחרוזת.
הערה
string() במערך או באובייקט מייצר JSON קומפקטי (ללא הדפסה יפה). אין פריטים מוכללים prettyPrint(). קבל JSON קומפקטי או בנה טקסט מעוצב באופן ידני.
22. טפל בערכים ריקים או Null בבטחה
תרחיש: מנע שגיאות כאשר שדה עשוי להיות Null, ריק או חסר לחלוטין.
ביטוי: coalesce(triggerBody()?['optionalField'], 'default value')
דוגמה: If optionalField is null, החזרת 'default value'. אם יש לו ערך, החזרת ערך זה.
חשוב
coalesce() רק נקודות אחיזה null, ולא מחרוזות ריקות. עבור מחרוזות ריקות, שלב עם תנאי: if(empty(triggerBody()?['field']), 'default', triggerBody()?['field']). הפונקציה empty() מחזירה ערך True הן עבור מחרוזת Null והן עבור מחרוזת ריקה ''.
מספרים ומתמטיקה
23. עיגול מספר
תרחיש: הצגת ערך אחוז או מטבע עם מספר קבוע של מקומות עשרוניים.
ביטוי: formatNumber(variables('value'), 'N2') (להצגה) או div(mul(variables('value'), 100), 100) (לחיתוך)
דוגמה: formatNumber(3.14159, 'N2') מחזיר 3.14 כמחרוזת.
הערה
formatNumber() מחזירה מחרוזת, לא מספר. אם עליך לבצע פעולות מתמטיות נוספות בערך המעוגל, ננתח אותו בחזרה: float(formatNumber(variables('value'), 'N2')).
24. המר מחרוזת למספר (וברקע)
תרחיש: טופס או דואר אלקטרוני מעניקים לך מספר כטקסט, ועליך לבצע איתם פעולות מתמטיות.
ביטוי: int(variables('textNumber')) או float(variables('textNumber')) וכן string(variables('numericValue'))
דוגמה: int('42') החזרת 42.
float('3.14') מחזיר 3.14.
string(42) מחזיר '42'.
חשוב
int() במחרוזת עשרונית מתרחשת שגיאה; הוא לא נחתך. אם משתנה עשוי להכיל ערך עשרוני, השתמש float() תחילה: int(float(variables('input'))). עם ערכים קבועים כגון int('3.14'), השגיאה נתפסת בזמן השמירה (InvalidTemplate), ולא בזמן ריצה.
25. חישוב אחוזים
תרחיש: הצג איזה ערך שבר אחד הוא של ערך אחר (לדוגמה, שיעור השלמה, ניצול).
ביטוי: mul(div(float(variables('part')), float(variables('total'))), 100)
דוגמה: With part=75 ו- total=200, מחזיר 37.5.
חשוב
חילוק מספרים שלמים חיתוך.
div(75, 200) מחזיר 0 מכיוון ששניהם מספרים שלמים. המר תמיד לציפה תחילה: div(float(75), float(200)) מחזיר 0.375.
התניות ולוגיקה
26. אם/אז/אחרת בביטוי
תרחיש: החזר ערכים שונים בהתבסס על תנאי, מבלי להוסיף פעולת תנאי לזרימה.
ביטוי: if(equals(variables('status'), 'Approved'), 'Proceed', 'Wait')
דוגמה: אם status הוא Approved, מחזיר Proceed. אחרת, החזרת Wait.
הערה
הפונקציה if() אינה תומכת באופרטורים >, < ישירות. השתמש בפונקציות עוזרות: if(greater(variables('count'), 10), 'Over', 'Under'). השוואות זמינות: equals(), , greater()less(), greaterOrEquals(), lessOrEquals().
27. מתמזג (הערך הראשון שאינו Null)
תרחיש: נסה שדות מרובים והשתמש בשדות הראשונים שיש בהם ערך, לדוגמה, שם מועדף, שם תצוגה, דואר אלקטרוני.
ביטוי: coalesce(triggerBody()?['preferredName'], triggerBody()?['displayName'], triggerBody()?['email'], 'Unknown')
דוגמה: אם preferredName הוא Null ו- displayName הוא 'Alice', מחזיר Alice.
עצה
coalesce() מדלג על null מחרוזות ריקות אך לא ריקות ''. מחרוזת ריקה היא ערך חוקי שאינו Null. שלב עם עוזר אם יש לדלג גם על מחרוזות ריקות: coalesce(if(empty(A), null, A), if(empty(B), null, B), 'default').
28. בדוק אם הערך הוא Null או ריק
תרחיש: ודא שלשדות נדרשים יש ערך ניתן לשימוש לפני העיבוד.
ביטוי: empty(variables('input'))
דוגמה: empty('') החזרת true.
empty(null) מחזיר true.
empty('hello') מחזיר false.
חשוב
empty() לא עובד על מספרים.
empty(0) שגיאה. עבור מספרים, השתמש בסוג equals(variables('num'), null) או בדוק אותו תחילה.
29. האם להשוות תאריכים (התאריך א' לאחר תאריך ב'?)
תרחיש: בדוק אם תאריך יעד חלף, או אם אירוע אחד התרחש לפני אירוע אחר.
ביטוי: greater(ticks(variables('dateA')), ticks(variables('dateB')))
דוגמה: greater(ticks('2026-03-18'), ticks('2026-03-15')) החזרת true (18 במרץ הוא אחרי 15 במרץ).
חשוב
השוואת מחרוזות greater('2026-03-18', '2026-03-15') תאריך ישירות עם מתרחשת עבודה עבור תבנית ISO (YYYY-MM-DD) מאחר שהיא ממיין את lexicographically. אך נכשל עבור תבניות אחרות.
greater('03/18/2026', '12/01/2025') מחזיר מכיוון false ש 0<1- . השתמש תמיד בהשוואת ticks() תאריכים מהימנה.
30. לוגיקה בוליאנית (AND/OR בתנאים)
תרחיש: שילוב תנאים מרובים בביטוי יחיד, לדוגמה, סכום AND מאושר > 1000.
ביטוי: and(equals(variables('status'), 'Approved'), greater(variables('amount'), 1000))
דוגמה: החזרת true רק אם המצב שווה ל- Approved amount גדול מ- 1000.
הערה
לא ניתן ליצור שרשרת עם and/or&&/||תחביר. השתמש תמיד בטופס הפונקציה. עבור לוגיקה מורכבת, קנן אותן: or(and(A, B), and(C, D)). מידת הקריאות יורדת עם קינון עמוק. שקול להשתמש בפעולה תנאי עם שורות מרובות במקום זאת.
כרטיס לעיון מהיר
| משימה | Expression |
|---|---|
| אותיות רישיות | toUpper(value) |
| קטנות | toLower(value) |
| מחרוזת משנה | substring(value, start, length) |
| החלף | replace(value, old, new) |
| חלק | split(value, delimiter) |
| מכיל (טקסט) | contains(toLower(value), toLower(search)) |
| כעת (מעוצב) | formatDateTime(utcNow(), 'yyyy-MM-dd') |
| הוספת ימים | addDays(date, count) |
| יום השבוע |
dayOfWeek(date) (0=א') |
| ימים בין | div(sub(ticks(end), ticks(start)), 864000000000) |
| פריט ראשון | first(array) |
| פריט אחרון | last(array) |
| מספר | length(array) |
| הצטרפות | join(array, delimiter) |
| ניתוח מבנה JSON | json(stringValue) |
| מאפיין בטוח | object?['key'] |
| ערך חזרה Null | coalesce(value, default) |
| ריק | empty(value) |
| אם/אחרת | if(condition, trueVal, falseVal) |
| השוואת תאריכים | greater(ticks(dateA), ticks(dateB)) |
| Int from string | int(stringValue) |
| ציפה ממחרוזת | float(stringValue) |
| וגם | and(condA, condB) |
| או | or(condA, condB) |
מידע קשור
- הפניה לקוד שגיאה של זרימת ענן
- פתרון בעיות של שגיאות זרימת ענן
- שימוש בביטויים בתנאים
- הפניה לפונקציות ביטוי זרימת עבודה
- Power Automate מגבלות ותצורה
הערה: המחבר יצר מאמר זה בעזרת בינה מלאכותית. מידע נוסף