ספר בישול של ביטויים עבור זרימות ענן

מאמר זה מסביר 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)

הערה: המחבר יצר מאמר זה בעזרת בינה מלאכותית. מידע נוסף