การใช้ no-code RPA ได้ด้วย Power Automate Desktop (Attended และ Unattended mode)

Narisorn Limpaswadpaisarn
EchoO365
Published in
4 min readJul 4, 2021

Content difficulty — Technical

สำหรับตอนนี้ผมไป collab กับทาง Microsoft Thailand นะครับก็จะมี YouTube channel ด้วย (ด้านล่างสุด) ซึ่งเป็นวิธีทำแบบละเอียดนะครับ

เนื้อหาจะเป็นการใช้โปรแกรม Power Automate Desktop ในการสร้าง Flow จาก Desktop (จะเรียกว่า Desktop Flow) เพื่อให้ automate ไปเขียนข้อมูลใน Legacy Application ที่องค์กรส่วนใหญ่น่าจะมี คือเป็น application software ที่ใช้ภายในองค์กรอาจจะต่อระบบ ERP หรือ DB และเป็น application ที่ด้วยตัวมันเองไม่สามารถใช้ API Call เพื่อ automate ได้ อาจจะ install ลงไปที่ desktop/workstation ของพนักงาน หรือ Server/VM ส่วนกลาง

*** Power Automate Desktop สามารถ download
ได้ฟรีใช้ได้สำหรับงาน Attended RPA (ไม่ต่อกับ Cloud Flow) กับ application หรือ web browser ทั่วไป (Desktop flow only)

โดย PC หรือ Server ต้องเป็น Windows 10 ขึ้นไป หรือ Windows Server 2016 ขึ้นไป

ถ้าต้องการใช้งาน Production สำหรับ business critical app
แบบมี SLA และใช้ flow ร่วมกับ Cloud ทั้ง Attended หรือ Unattended
ต้องใช้ license ของ Power Automate
สามารถดูได้ที่ Licensing guide

จากนั้นเราจะสร้าง Power Automate Cloud flow จากบน cloud ให้ไปสั่ง run ในฝั่ง desktop อีกทีครับซึ่งก็จะมี 2 mode คือ แบบ Attended และ Unattended ก็อารมณ์เป็นการเหมือนสร้าง Bot ไว้สั่งการครับ หรือที่เรียกว่า Robotic Process Automation (RPA) ซึ่งจะทำให้ legacy app เรามีความ modern มากขึ้นและในหลายๆกรณีสามารถดัดแปลงจาก connector ที่มีบน cloud flow ของเราเพื่อลดงาน manual หลายๆงานครับ

Attended vs Unattended

ในความหมายของ Power Automate Desktop solution นี้จะวัดที่ user session ใน Windows ครับ กล่าวคือถ้า run desktop flow ในเครื่องนั้นแล้ว user ยัง sign in อยู่ก็จะต้องเป็น Attended mode ครับแต่ถ้า user sign out ไปแล้ว (โดยที่เครื่องยังไม่ shut down, locked หรือ sleep) ก็ถือว่าจะสามารถ run ได้ในแบบ Unattended mode

จริงๆแล้ว Unattended ในความหมายมันจะเป็นงาน automate ที่ไม่มี user เข้ามายุ่งใน process เลย เป็น run หลังบ้านผ่าน event trigger หรือ ตาม schedule ส่วน Attended จะเป็นงาน automate ที่จะ manual run โดย user คนนั้นๆสั่ง manual run ตัว RPA ที่ PC workstation ของคนนั้นเลย (human-initiated) เพื่อที่ให้ bot ช่วยทำงานที่เป็น manual แทน เช่นการ copy ข้อมูลไปกรอกในระบบหลายๆอันแทนที่จะให้ user คนนั้นพิมพ์แล้ว save ทีละอัน เลยมีความต่างตามที่ session ว่า user sign in หรือไม่ด้วย แต่บางงานก็เป็นลูกผสมระหว่าง Attended และ Unattended เช่นกัน

Unattended vs Attended

กรณี Attended RPA ตัว Admin user (Global Admin) สามารถ assign license ไปที่ user ได้เลยผ่าน Microsoft 365 Admin Center (https://admin.microsoft.com/)

ถ้าเป็นกรณี Unattended RPA นั้น Admin user (Global Admin หรือ Power Platform Admin ต้องทำการใส่ license quota ที่ Power Platform Admin Center (https://aka.ms/ppac) ใน environment นั้นๆ (ที่เราจะสร้าง Unattended RPA flow) เสียก่อนตามจำนวนเครื่องที่จะลง

การจะซื้อ Unattended RPA add-on ได้นั้นจะต้องมี based license ที่เป็น Power Automate per user plan with attended RPA หรือ Power Automate per flow เสียก่อน

เมื่อทำการซื้อ license แล้วให้ admin มา assign ใน Environment ที่เราจะสร้าง RPA Flow

การทดลอง

ในตัวอย่างนี้ผมจะมี เครื่องอยู่ 1 เครื่องนะครับที่ลงตัว Power Automate Desktop ซึ่งตอน install จะมีการเลือกได้ว่าจะ allow ให้ remote มาเข้าเครื่องที่ลงได้เพื่อ unattended mode (จะมี check box ให้เรา) และมี legacy application อยู่นอกจากนี้การ connect กับ cloud flow จะต้องเชื่อมด้วยการลง On-premise data gateway (Standard mode) แบบเดียวกับที่ใช้ใน Power BI หรือ เชื่อมโดย register เครื่องๆนั้นเป็น Machines/Machine groups ตรงนี้เพื่อให้ cloud flow สามารถ sign in ไปใน user เครื่องนั้นได้ และ ทั้งสองแบบ สามารถ add เครื่องเพิ่มเพื่อเป็น load balance cluster งานๆนั้นได้ด้วย

(ซ้าย) On-premise data gateway, (ขวา) Machine

Updated ใน Power Automate Desktop version ใหม่จะย้ายในส่วนของการทำ Machine ไปไว้ในหน้าของ Machine runtime (ซึ่งโปรแกรมนี้จะมีให้ installed เวลาเราลง Power Automate Desktop)

เนื่องจาก App เป็น legacy app ที่ไม่สามารถใช้ API ได้อีกทั้งเป็น Custom App ใช้ภายในองค์กรเลยไม่มี action ให้เลือกจากที่ list ไว้ใน Power Automate Desktop เลยต้องใช้การ record การใช้งานจริงๆเพื่อบันทึก step แล้วแก้ parameter ที่เรากรอกเป็น variable เพื่อรับค่าจากที่อื่น

Record การใช้ insert data step

สำหรับการทดลองผมจะ trigger จาก cloud flow โดยใช้ Microsoft Form ในลักษณะที่เป็น Attended และ Unattended mode โดยสุดท้ายแล้ว คำตอบที่ได้จาก Microsoft Form จะลงมากรอกใน Legacy App ที่อยู่ใน PC Desktop

รับค่า parameter จาก Microsoft Form ลง Desktop flows โดย connect on-prem PC แบบ data gateway หรือ Machine/Machine Groups
รับค่า parameter จาก Microsoft Form ลง Desktop flows (เลือก Run mode เป็น Attended หรือ Unattended)

สำหรับ Attended เราก็สามารถ test run โดยการกรอก Trigger จาก Microsoft Form ได้เลยในขณะที่เรา sign in เครื่อง Windows แต่ถ้าเป็น Unattended mode เราต้องมีการ sign out windows ก่อนเพื่อที่จะให้ flow สามารถ remote มา sign in แล้ว run desktop flow เครื่องเราได้ (scenarios เลยเหมาะกับเครื่องกลางที่เป็น Server หรือ Virtual Machine)

ทำการ sign out (ไม่ใช่ Shut down, sleep หรือ locked)
ทดลอง trigger โดยใช้มือถือกรอก Microsoft Form และเช็ค flow history จาก Power Automate Mobile App
Desktop flow เข้ามากรอกข้อมูลได้เรียบร้อย

เราสามารถทำเป็น cluster run ได้เช่นกันระหว่าง Data gateway หรือ Machine group

กรณี add gateway เข้า cluster
กรณี cluster มากกว่า 1 เครื่องที่ run flow ภายใต้ flow อันเดียวกัน

สำหรับรายละเอียดการทำทั้งหมดดูได้ที่คลิปด้านล่างนี้นะครับ

Power Automate : การใช้ no-code RPA ได้ด้วย Power Automate Desktop

--

--

Narisorn Limpaswadpaisarn
EchoO365

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