รวม Tip & Tricks สำหรับการใช้งาน Power Automate (Cloud Flow)
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
ตัว Action Name ก็สามารถ rename ได้เพื่อความ make sense กับ ของ flow ที่เรา design และไล่ดูง่ายด้วยว่าแต่ละ action จะทำอะไรบ้าง
2. Add note or Comments features
เมื่อก่อนการ Add note คือ ชื่อเก่าของการ Add comment ในสมัยนี้ ซึ่ง การ Add note จะแยกไปเป็นอีก feature ใหม่ลยตามคำอธิบายด้านล่าง
เราสามารถอธิบายเพิ่มเติมให้ตัวเองหรือคนที่จะเข้ามาเป็นเจ้าของ Flow ให้เข้าใจมากขึ้นได้โดยใช้การ Add note หรือ Comment ใน action ต่างๆที่จะเน้นความสำคัญ
อย่างการใช้สูตร Expressions ต่างๆก็โน๊ตไว้เพื่อให้เข้าใจได้ง่ายหรือ copy & paste ได้ง่ายขึ้น
ส่วนการ 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
นอกจากนี้ยัง @ เพื่อ 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 ทับสิ่งที่เปลี่ยนแปลง
3. Copy to my clipboard and Drag n’ Drop
เราสามารถ copy action ที่ใช้บ่อยๆ ได้เพื่อ paste มาใช้อีกใน Flow นั้นๆ รวมถืงการ Drag n’ Drop เพื่อ เลื่อน order ของ Flow (ยกเว้นว่ามี dependency เช่น action นี้ใช้ dynamic content ของตัวก่อน เราไม่สามารถลากมันไปไว้หน้าได้)
4. Use Variables
การสร้างตัวแปร โดยใช้ Initialized Variable เอามีประโยชน์ในการที่เราจะเอาค่าๆนั้นมา Reuse กับ Action อันอื่นๆเพื่อจะได้ไม่ต้องให้ระบบมาคำนวณอะไรซ้ำๆ รวมถึงการ update ตัวแปรนั้นเป็นค่าใหม่ก็ใช้ Set variable ซึ่งก็ใส่ค่าเป็น Dynamic content ได้
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 ส่งค่ากลับไปหาผู้ใช้
6. Use parallel branches and child flow
ปกติ action จะ run ต่อๆกันเป็น series เราสามารถแยกงานโดยการแยกไป process ได้จาก parallel branches, ไป run ใน child flow หรือ การทำ flow ยาวๆ 1 อันแตกไปเป็น flow เล็กๆหลายๆอันเพื่อการ optimized ได้
เรื่องของการ 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 ว่าเวลาหมดเป็นต้น
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 เป็นต้น
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
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 เป็นต้น
12. Use OData Query
Action การ Get List ต่างๆ ของ SharePoint List, Dataverse หรือ Excel ก็จะมีการใช้เรา Filter ตัว Output ซึ่งมีประโยชน์มากเพื่อที่ให้ Output ไม่ต้องดึงส่วนที่ไม่จำเป็นออกมาช่วยในมุมลดการคำนวณ อันนี้ขึ้นอยู่กับการ design ของเราว่าจำเป็นต้องเอามาทุกค่าไหม ซึ่งก็มีทั้งการเลือก Top Count หรือ Filter ตาม Column ที่เราต้องการ
13. Your Power Automate License
เราในฐานะ user สามารถดูว่าเราใช้ License ของ Power Automate อะไรโดยไปที่หน้าหลัก https://powerautomate.microsoft.com/ และ ไปดูได้ที่ View my license ส่วนของ Power Apps ดูได้ที่ https://make.powerapps.com/ และ ไปที่ Plan(s)
อีกวิธีนึง (อันนี้วิธีเก่า) เมื่อ sign in แล้วให้กดแป้น keyboard คือ Ctrl+Alt+A (ใช้ได้กับบาง Browser เช่น Microsoft Edge, Google Chrome) แล้ว search ตัว “isCurrent”: true