รวม Tip & Tricks สำหรับการใช้งาน Power Automate (Cloud Flow)

Narisorn Limpaswadpaisarn
EchoO365
Published in
5 min readMar 21, 2022

Content difficulty — user

สวัสดีครับวันนี้จะมาแนะนำ Tip & Tricks เพื่อให้คนที่สนใจ Power Automate ใช้งานได้มีประสิทธิภาพมากขึ้นครับ รวมไปถึงง่ายต่อคนที่จะมาพัฒนาต่อจาก Flow ที่เราสร้างด้วยครับ ขอแบ่งเป็นข้อๆครับ

1. Rename your Action and Flow name

เราสามารถ Rename ชื่อของ Flow ให้เราเข้าใจง่ายขึ้นครับ เพราะปกติ naming ระบบจะตั้งชื่อตาม trigger และ action แรก ซึ่งถ้าใน account เรามีหลายๆ Flow ก็ที่สร้างแบบไม่ตั้งชื่อขึ้นมานานวันเข้า จะทำให้เขาดูไม่ออกว่า Flow นี้ไว้ทำอะไร ไม่กล้าลบเพราะคิดว่ามันจะสำคัญทั้งๆที่เราเองจิงๆ ก็ไม่ใช้แล้ว

เพิ่มเติมในกรณีเรามี App และมี Flow ที่เกี่ยวกับ App เราก็สามารถ Group มันไว้ที่ Solution ได้เพื่อจัดสรรให้ง่ายขึ้นเวลาดูหรือถ้าจะ migrate

ชื่อถ้าไม่ทำอะไรก็จะตั้งตาม Trigger และ Action ของ Flow
สามารถตั้งชื่อตามที่เราเข้าใจได้ ถ้าเป็น flow ที่ผูกกับ Power Apps ก็ใส่ชื่อ App ด้วย
การ Group ไปใน Solution สมมุติว่าชื่อ Bukarapak (สมมุติ)

ตัว Action Name ก็สามารถ rename ได้เพื่อความ make sense กับ ของ flow ที่เรา design และไล่ดูง่ายด้วยว่าแต่ละ action จะทำอะไรบ้าง

Rename ตัว Action เพื่อให้เข้าใจง่าย

2. Add note or Comments features

เมื่อก่อนการ Add note คือ ชื่อเก่าของการ Add comment ในสมัยนี้ ซึ่ง การ Add note จะแยกไปเป็นอีก feature ใหม่ลยตามคำอธิบายด้านล่าง

เราสามารถอธิบายเพิ่มเติมให้ตัวเองหรือคนที่จะเข้ามาเป็นเจ้าของ Flow ให้เข้าใจมากขึ้นได้โดยใช้การ Add note หรือ Comment ใน action ต่างๆที่จะเน้นความสำคัญ

อย่างการใช้สูตร Expressions ต่างๆก็โน๊ตไว้เพื่อให้เข้าใจได้ง่ายหรือ copy & paste ได้ง่ายขึ้น

การ add note เพื่ออธิบาย (ส่วนใหญ่ผมชอบเอาไว้เก็บสูตร Expression)

ส่วนการ add comment ไว้สำหรับการ collaboration กับเพื่อนร่วมงาน เช่น เป็นการปักไว้เพื่อเป็น issue หรือ เป็นโน๊ตส่วนตัวที่โต้ตอบกันได้ (อันนี้เหมือนพวก Microsoft Office ที่เรา add comment) ซึ่งเราสามารถ mark แต่ละ message thread ให้ Resolve หรือ delete ได้ในกรณี Resolve เราจะมีสิทธิ reopen ตัว thread นั้นได้ แต่ถ้า delete ก็จะหายไปทั้งแผงเลย

ถ้าเปิด Comment pane จะสร้าง New จะเป็น comment ที่ไม่ผูกกับ Action ถ้าจะผูก Action จะต้องคลิก … ที่ Action นั้นแล้วคลิก New Comment

สร้าง Comment แบบไม่ผูก vs ผูก action
Ex. ใน action นี้เรามี Message Thread ผูกอยู่ 2 อันสามารถที่จะ Delete thread หรือ Mark Resolve ให้เหลือ 1 ได้

นอกจากนี้ยัง @ เพื่อ mention คนในองค์กรเข้ามา comment กับเราได้ซึ่งจะเป็นการ Share ตัว Flow ให้เขาเป็น Owner ไปในตัว และจะส่งเข้า Email ของคนที่เรา mention เขาก็จะเข้ามา comment ตอบเราได้และจะมี feature ชื่อ co-presence ซึ่งให้เห็น real time ว่า user ไหน Editing อยู่ แม้ไม่ได้ขนาด real time co-authoring เห็นความเปลี่ยนแปลง Real time แบบพวก Microsoft Office แต่ก็มีการ track change มาบอกได้ว่าจะดูหรือ save ทับสิ่งที่เปลี่ยนแปลง

ทำการ collaboration comment กับเพื่อนของเราได้เหมือนกัน
มีแจ้งเตือนว่าเพื่อนเราแก้แล้วจะให้ลบที่เราแก้, save เป็น flow ใหม่อีกอัน หรือ save ทับ

3. Copy to my clipboard and Drag n’ Drop

เราสามารถ copy action ที่ใช้บ่อยๆ ได้เพื่อ paste มาใช้อีกใน Flow นั้นๆ รวมถืงการ Drag n’ Drop เพื่อ เลื่อน order ของ Flow (ยกเว้นว่ามี dependency เช่น action นี้ใช้ dynamic content ของตัวก่อน เราไม่สามารถลากมันไปไว้หน้าได้)

Copy action ที่เราใช้บ่อยๆใน Flow นั้นๆได้ไม่ต้องสร้างใหม่
คลิกลาก action ไปไว้ลำดับอื่น (ลากไปวางไว้ตรงลูกศระหว่าง action) หรือเอาไปใส่ใน Apply to each loop ก็ได้

4. Use Variables

การสร้างตัวแปร โดยใช้ Initialized Variable เอามีประโยชน์ในการที่เราจะเอาค่าๆนั้นมา Reuse กับ Action อันอื่นๆเพื่อจะได้ไม่ต้องให้ระบบมาคำนวณอะไรซ้ำๆ รวมถึงการ update ตัวแปรนั้นเป็นค่าใหม่ก็ใช้ Set variable ซึ่งก็ใส่ค่าเป็น Dynamic content ได้

Initialized variable กับ set variable รวมกับการ rename action

5. Terminate control as your breakpoint

ในการเขียน Program เราอาจจะมีการ debug ตัว step ของ code เพื่อหยุดเพื่อดูการทำงานจนถึงบรรทัดนั้นๆ ซึ่งใน Power Automate ก็สามารถ Add สิ่งที่คล้ายๆกันได้ในกรณีนี้คือ action ชื่อ Terminate ก็คล้ายๆ คำสั่ง break ใน การเขียนโปรแกรมทำให้เรา test ตัว flow เราไม่จำเป็นต้อง run ทั้ง flow ให้จบ ก็ให้หยุดจนถึงจุดที่เราสนใจ พอเสร็จแล้วค่อยลบตัว Terminate ทิ้้ง ซึ่งอันที่จริงแล้วตัว terminate ใช้ในการใช้งานอื่นๆ เช่น การหยุดการทำงานของ Flow, โชว์ error และ ส่ง error message ส่งค่ากลับไปหาผู้ใช้

ใช้ terminate เพื่อการหยุดและ test แต่ละ action ก่อนหน้าว่าทำงานถูกต้องหรือไม่

6. Use parallel branches and child flow

ปกติ action จะ run ต่อๆกันเป็น series เราสามารถแยกงานโดยการแยกไป process ได้จาก parallel branches, ไป run ใน child flow หรือ การทำ flow ยาวๆ 1 อันแตกไปเป็น flow เล็กๆหลายๆอันเพื่อการ optimized ได้

ใช้ parallel bracnches

เรื่องของการ run ตัว child flow ได้กล่าวไปแล้วสามารถมาดูที่ตอนนี้ได้ครับ https://link.medium.com/5MoZ0bpMzob

7. Configure run after

ในบางกรณีแต่ละ action เราไม่ต้องการออกแบบให้มันอยู่ในกรณีที่ success เสมอไป เช่น การ approve ซึ่งถ้าคน approve ไม่ approve ตัว Flow ก็จะ timeout ตามเวลาที่ระบบกำหนด (Maximum ของ Power Automate ในการ time out คือ 30 วัน ถ้าเราไม่ได้ set time out ใน Approval action) ซึ่ง flow result ก็อาจจะขึ้น timeout ในกรณีเราไม่ได้เขียน logic ต่อว่าจะให้ไปทำอะไรก็อาจจะทำให้ transaction นั้นหายไปได้ การทำ action ที่ปรับ Configure run after ก็จะช่วยรับช่วงต่อในกรณี action ก่อนหน้า failed หรือ timeout เช่น ให้ไปบันทึกกลับไปที่ SharePoint ว่า Rework ถ้า manager ไม่ approve จน timeout หรือส่ง email กลับไปบอกคน request ว่าเวลาหมดเป็นต้น

ปกติทุก action จะ default เป็น is successful อย่างเดียว ซึ่งเราแก้ไขเป็นอย่างอื่นได้
กำหนด Time out ได้ก่อน 30 วันโดยใช้รหัสตาม ISO 8601 เช่น P7D = 7 วัน, PT5H = 5 ชม.

8. Use Scope control

การใช้ action ที่เป็น Control ชื่อ Scope ก็จะเป็นการจัด grouping ของ action ได้ง่ายขึ้น แล้วเราก็สามารถจะ rename ตัว Scope เพื่อให้เข้าใจง่ายขึ้น เช่น Scope ของการสร้างตัวแปรทั้งหมด, scope ของการ response ในกรณี timeout เป็นต้น ซึ่งตรงนี้ก็ optional สำหรับผู้สร้าง flow

อีก use case คือสามารถใช้ Scope ร่วมกับการ run after เป็นการ try catch ได้ซึ่งเป็น scenario การทำ error handling เวลา user กรอกข้อมูลหรือการที่ trigger ตัวข้อมูลที่จะทำให้ flow error ได้เราก็ทำ scope 2 ตัว ไว้อันนั้นเป็น try ในกรณีไม่มีความผิดพลาด และ catch ในกรณี มัน failed แล้ว scope ตัว try ไม่ถูก run (คือโดน Skipped) ว่าให้ทำไรต่อเช่น แจ้งไปหา user เป็นต้น

use case เรื่อง error handling เช่น อาจจะเป็นการ call https connector แล้ว token ใน flow ที่เราใส่ไว้คิดว่าสามารถจะ expired ได้ หรือ กรณี SharePoint List ที่ user ที่กรอกจาก Power Apps ไปใส่ข้อมูล ไม่มี permission เป็นต้น

การใช้ Scope control + การ rename ชื่อของ scope
ใช้ในมุม Try Catch

9. ใช้ Expressions

การใช้ Expression ก็จะช่วยทำให้เราลด step ของ flow ได้อย่างหลากหลาย จาก 3–4 actions อาจจะเหลือแค่ action เดียวแถมลด API request ด้วย จาก 4 เหลือ 1 call แต่อันนี้ก็ต้องศึกษาเพิ่มเติมนิดนึงครับ

ศึกษา function ของ Expression ได้ที่ https://docs.microsoft.com/en-us/azure/logic-apps/workflow-definition-language-functions-reference

การใช้ Expression

10. Use Delay or Delay until

ใช้ delay เพื่อรอ Process ก่อนหน้าที่อาจจะ execute ช้าให้ทำให้เสร็จก่อนได้โดยมี Delay ธรรมดาคือ Fix เวลา กับ Delay until คือรอจนกว่าถึงเวลา timestamp (เวลาเป็น UTC) ที่กำหนด

11. Trigger condition

มีหลายสาเหตุในการที่ทำให้ Flow นั้นๆไม่ run พร่ำเพรื่อ เช่น การ scope down ใน action นั้นๆ หรือ การใช้ trigger condition เช่น ให้ run เมื่อมี item add มาใน SharePoint list แต่ต้องมีการเปลี่ยนแปลงที่ Column xxx เท่านัั้นถึงเริ่ม run เป็นต้น

Scope down ใน action นั้นๆ เช่น ของ OneDrive ให้ run เฉพาะเมื่อมีการ trigger ไปใน folder นั้นๆ ไม่ทุกอัน
ให้เริ่ม run เฉพาะแค่กรณีมีการ add item ใน SharePoint list และ column ชื่อ role มี ค่าเป็น Project manager

12. Use OData Query

Action การ Get List ต่างๆ ของ SharePoint List, Dataverse หรือ Excel ก็จะมีการใช้เรา Filter ตัว Output ซึ่งมีประโยชน์มากเพื่อที่ให้ Output ไม่ต้องดึงส่วนที่ไม่จำเป็นออกมาช่วยในมุมลดการคำนวณ อันนี้ขึ้นอยู่กับการ design ของเราว่าจำเป็นต้องเอามาทุกค่าไหม ซึ่งก็มีทั้งการเลือก Top Count หรือ Filter ตาม Column ที่เราต้องการ

เช่น Filter ว่าเอาแค่ row เฉพาะ มีค่าของ MonthlyCost (ชื่อ column) ที่มีค่ามากกว่า 800

13. Your Power Automate License

เราในฐานะ user สามารถดูว่าเราใช้ License ของ Power Automate อะไรโดยไปที่หน้าหลัก https://powerautomate.microsoft.com/ และ ไปดูได้ที่ View my license ส่วนของ Power Apps ดูได้ที่ https://make.powerapps.com/ และ ไปที่ Plan(s)

check ตัว license ของ user ที่มีด้วยตัวเขาเอง

อีกวิธีนึง (อันนี้วิธีเก่า) เมื่อ sign in แล้วให้กดแป้น keyboard คือ Ctrl+Alt+A (ใช้ได้กับบาง Browser เช่น Microsoft Edge, Google Chrome) แล้ว search ตัว “isCurrent”: true

หน้า Home ของ Power Automate กด Ctrl+Alt+A มาเช็ค กรณีนี้จะเห็นว่า log in user คนนี้ใช้ Power Automate plan ที่มากับ Office 365

--

--

Narisorn Limpaswadpaisarn
EchoO365

Office 365 and Modern Workplaces: Please follow my publication https://medium.com/echoo365 for Microsoft 365 & Power Platform Blog (In Thai)