หมายเหตุ
การเข้าถึงหน้านี้ต้องได้รับการอนุญาต คุณสามารถลอง ลงชื่อเข้าใช้หรือเปลี่ยนไดเรกทอรีได้
การเข้าถึงหน้านี้ต้องได้รับการอนุญาต คุณสามารถลองเปลี่ยนไดเรกทอรีได้
บทความนี้อธิบายรูปแบบนิพจน์พร้อมใช้งาน 30 แบบสําหรับสถานการณ์ทั่วไปใน Power Automate โฟลว์ระบบคลาวด์ คุณสามารถคัดลอก ปรับเปลี่ยน และใช้รูปแบบเหล่านี้ในโฟลว์ของคุณได้
Note
นิพจน์เหล่านี้ทํางานในทุกระดับสิทธิ์การใช้งานของโฟลว์ระบบคลาวด์ Power Automate ค้นหาการอ้างอิงฟังก์ชันแบบเต็มในฟังก์ชันนิพจน์เวิร์กโฟลว์
การดําเนินการข้อความ
1. แปลงเป็นตัวพิมพ์ใหญ่หรือตัวพิมพ์เล็ก
สถานการณ์: ปรับมาตรฐานการป้อนข้อมูลของผู้ใช้ก่อนการเปรียบเทียบหรือที่เก็บข้อมูล
นิพจน์: toUpper(variables('input')) or 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
Note
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')
Example: ใช้ decodeUriComponent('%0A') สําหรับเส้นใหม่หรือ decodeUriComponent('%0D%0A') สําหรับตัวแบ่งบรรทัดสไตล์ Windows
สำคัญ
การใช้ \n โดยตรงในนิพจน์ไม่ได้สร้างตัวแบ่งบรรทัด ซึ่งแสดงผลอักขระ \nสัญพจน์ ใช้ decodeUriComponent วิธีการนี้เสมอหรือใช้ <br> หากผลลัพธ์เป็น HTML
6. ตรวจสอบว่าสตริงมีข้อความหรือไม่
สถานการณ์: กําหนดเส้นทางโฟลว์ที่ยึดตามว่าบรรทัดหัวเรื่อง เนื้อความอีเมล หรือเขตข้อมูลมีคําสําคัญ
นิพจน์: contains(toLower(triggerBody()?['subject']), 'urgent')
Example: contains('Project Alpha Review', 'Alpha') ส่งกลับ true
Note
contains() ไวต่ออักษรใหญ่-เล็ก ตัดทั้ง haystack และเข็มในการ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) or addDays(utcNow(), -30)
ตัวอย่าง: ถ้าวันนี้คือ 2026-03-18addDays(utcNow(), 7) ส่งกลับ2026-03-25T...Z
Note
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') แสดงค่า วันที่เวลา ที่เหมาะสม
สำคัญ
หากไม่มีพารามิเตอร์ตําแหน่งที่ตั้ง การแยกวิเคราะห์จะขึ้นอยู่กับการตั้งค่าภูมิภาคของโฟลว์และสามารถสลับเดือน/วันได้ ระบุตําแหน่งที่ตั้งอย่างชัดเจนเสมอเพื่อหลีกเลี่ยง 03/04/2026 การถูกตีความว่าเป็นวันที่ 3 เมษายน เทียบกับวันที่ 4 มีนาคม
10. รับวันของสัปดาห์
สถานการณ์: เรียกใช้ตรรกะที่แตกต่างกันในวันทํางานเทียบกับวันหยุดสุดสัปดาห์ หรือสร้างรายงาน "รายงานวันจันทร์"
นิพจน์: dayOfWeek(utcNow())
ตัวอย่าง: ส่งกลับ 0 สําหรับวันอาทิตย์ 1 สําหรับวันจันทร์ ... 6 สําหรับวันเสาร์
เคล็ดลับ
วันอาทิตย์คือ 0ไม่ใช่7 ใช้สําหรับ or(equals(dayOfWeek(...), 0), equals(dayOfWeek(...), 6)) การตรวจสอบวันหยุดสุดสัปดาห์ เงื่อนไขเหมือน dayOfWeek(utcNow()) > 5 จะจับวันเสาร์ แต่พลาดวันอาทิตย์
11. คํานวณความแตกต่างระหว่างวันที่สองวัน
สถานการณ์: กําหนดจํานวนวันที่ผ่านไประหว่างวันที่ร้องขอและวันที่เสร็จสมบูรณ์
นิพจน์: div(sub(ticks(variables('endDate')), ticks(variables('startDate'))), 864000000000)
ตัวอย่าง: ถ้าเริ่มต้นคือ2026-03-01และสิ้นสุดคือ 2026-03-18ส่งกลับ17
Note
ไม่มีฟังก์ชันที่มีอยู่แล้วภายในdateDiff() คุณต้องใช้วิธีการเห็บ ตัว 864000000000 หารแปลงเครื่องหมายเป็นวัน สําหรับชั่วโมง ใช้ 36000000000; สําหรับนาที ใช้600000000
12. จัดรูปแบบวันที่สําหรับการแสดงผล
สถานการณ์: แปลงค่า datetime เป็นรูปแบบที่สามารถอ่านได้สําหรับอีเมลหรือรายงาน
นิพจน์: formatDateTime(variables('myDate'), 'MMMM dd, yyyy') or 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. กรองอาร์เรย์ตามเงื่อนไข
สถานการณ์: รับเฉพาะรายการจากอาร์เรย์ที่ตรงกับเกณฑ์เฉพาะ
นิพจน์: ใช้การดําเนินการ ตัวกรองอาร์เรย์ กับ: @item()?['Status'] เท่ากับ 'Active'
ตัวอย่าง: ค่าที่ป้อน [{Name:'A', Status:'Active'}, {Name:'B', Status:'Closed'}] เข้าจะส่งกลับ [{Name:'A', Status:'Active'}]
Note
คุณไม่สามารถใช้นิพจน์ตัวกรองลักษณะแบบ whereอินไลน์ได้ ใช้การดําเนินการกรองอาร์เรย์ (ไม่ใช่นิพจน์) สําหรับการกรองตามนิพจน์ ให้ใช้ @equals(item()?['Status'], 'Active') ในโหมดขั้นสูงของตัวกรองอาร์เรย์
14. รับรายการแรกหรือสุดท้ายจากอาร์เรย์
สถานการณ์: เรียกใช้ระเบียนล่าสุดหรือรายการที่ตรงกันครั้งแรกจากรายการ
นิพจน์: first(variables('myArray')) or 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
Note
length() ทํางานกับทั้งอาร์เรย์และสตริง
length('hello') แสดง 5 (จํานวนอักขระ) ตรวจสอบให้แน่ใจว่า คุณกําลังส่งผ่านอาร์เรย์ ไม่ใช่สตริงที่มีลักษณะเหมือนอาร์เรย์
16. สร้างสตริงที่คั่นด้วยเครื่องหมายจุลภาคจากอาร์เรย์ (join)
สถานการณ์: แปลงรายการของชื่อ อีเมล หรือ ID เป็นสตริงที่มีตัวคั่นเดียวสําหรับการแสดงผลหรือการเรียก API
นิพจน์: join(variables('myArray'), ', ')
ตัวอย่าง: join(createArray('Alice', 'Bob', 'Carol'), '; ') ส่งกลับ Alice; Bob; Carol
เคล็ดลับ
join() ทํางานกับอาร์เรย์ของสตริง ถ้าอาร์เรย์ของคุณมีวัตถุ ให้ใช้การดําเนินการ เลือก ก่อนเพื่อแยกเขตข้อมูลที่คุณต้องการ แล้วรวมผลลัพธ์
17. ตรวจสอบว่าอาร์เรย์มีค่าหรือไม่
สถานการณ์: ตรวจสอบว่ามีรายการเฉพาะในรายการก่อนดําเนินการต่อหรือไม่
นิพจน์: contains(variables('myArray'), 'searchValue')
ตัวอย่าง: contains(createArray('North', 'South', 'East', 'West'), 'East') ส่งกลับ true
Note
สําหรับอาร์เรย์ของออบเจ็กต์ 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'), '"}'))
ตัวอย่าง: ด้วย 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} เป็นสตริง
Note
string() ในอาร์เรย์หรือวัตถุ ให้ JSON ขนาดกะทัดรัด (ไม่มีการพิมพ์ที่ค่อนข้างพิมพ์) ไม่มีภายในprettyPrint() ยอมรับ JSON ขนาดกะทัดรัดหรือสร้างข้อความที่จัดรูปแบบด้วยตนเอง
22. จัดการค่า null หรือค่าว่างอย่างปลอดภัย
สถานการณ์: ป้องกันข้อผิดพลาดเมื่อเขตข้อมูลอาจเป็น null ว่างเปล่า หรือหายไปทั้งหมด
นิพจน์: coalesce(triggerBody()?['optionalField'], 'default value')
ตัวอย่าง: ถ้า optionalField เป็น 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 เป็นสตริง
Note
formatNumber() ส่งกลับสตริง ไม่ใช่ตัวเลข หากคุณต้องการทําคณิตศาสตร์เพิ่มเติมในค่าที่ปัดเศษแล้ว ให้แยกวิเคราะห์กลับ: float(formatNumber(variables('value'), 'N2'))
24. แปลงสตริงเป็นตัวเลข (และกลับ)
สถานการณ์: ฟอร์มหรืออีเมลให้ตัวเลขเป็นข้อความ และคุณจําเป็นต้องใช้คณิตศาสตร์
นิพจน์: int(variables('textNumber')) or 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)
ตัวอย่าง: ด้วย part=75 และ total=200ส่งกลับ37.5
สำคัญ
การหารจํานวนเต็มจะปัดเศษทิ้ง
div(75, 200) ส่งกลับ 0 เนื่องจากทั้งสองเป็นจํานวนเต็ม แปลง เป็นเลขทศนิยมก่อนเสมอ: div(float(75), float(200)) ส่งกลับ0.375
เงื่อนไขและตรรกะ
26. If/then/else ในนิพจน์
สถานการณ์: ส่งกลับค่าที่แตกต่างกันโดยยึดตามเงื่อนไข โดยไม่ต้องเพิ่มการดําเนินการเงื่อนไขไปยังโฟลว์
นิพจน์: if(equals(variables('status'), 'Approved'), 'Proceed', 'Wait')
ตัวอย่าง: ถ้าสถานะคือ ApprovedจะแสดงProceed มิฉะนั้นจะส่งกลับ Wait
Note
ฟังก์ชันif()ไม่สนับสนุน >< ตัวดําเนินการ โดยตรง ใช้ฟังก์ชันผู้ช่วยเหลือ: if(greater(variables('count'), 10), 'Over', 'Under') การเปรียบเทียบที่พร้อมใช้งาน: equals(), greater(), less(), greaterOrEquals(), lessOrEquals()
27. Coalesce (ค่าแรกที่ไม่ใช่ค่า 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. เปรียบเทียบวันที่ (เป็นวันที่ A หลังจากวันที่ B หรือไม่)
สถานการณ์: ตรวจสอบว่ามีกําหนดเวลาหรือมีเหตุการณ์หนึ่งเกิดขึ้นก่อนเหตุการณ์อื่นหรือไม่
นิพจน์: 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) เนื่องจากจะเรียงลําดับตามหลักเลกซิโอกราฟ แต่ล้มเหลวสําหรับรูปแบบอื่น ๆ
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 และจํานวนมากกว่า 1000
Note
คุณไม่สามารถเกี่ยวโยงand/orกับไวยากรณ์&&/|| ใช้ฟอร์มฟังก์ชันเสมอ สําหรับตรรกะที่ซับซ้อน ให้ซ้อน: or(and(A, B), and(C, D)) ความสามารถในการอ่านลดลงด้วยการซ้อนเชิงลึก พิจารณาใช้การดําเนินการเงื่อนไขกับหลายแถวแทน
การ์ดการอ้างอิงด่วน
| งาน | นิพจน์ |
|---|---|
| ตัวพิมพ์ใหญ่ | 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 จากสตริง | int(stringValue) |
| ลอยจากสตริง | float(stringValue) |
| และ | and(condA, condB) |
| หรือ | or(condA, condB) |
ข้อมูลที่เกี่ยวข้อง
- การอ้างอิงรหัสข้อผิดพลาดของโฟลว์ระบบคลาวด์
- แก้ไขปัญหาข้อผิดพลาดของโฟลว์ระบบคลาวด์
- ใช้นิพจน์ในเงื่อนไข
- การอ้างอิงฟังก์ชันนิพจน์เวิร์กโฟลว์
- ขีดจํากัดและการกําหนดค่า Power Automate
หมายเหตุ: ผู้เขียนจัดทําบทความนี้ด้วยความช่วยเหลือจาก AI เรียนรู้เพิ่มเติม