IT General
น้องๆ เคยเจอปัญหาแบบนี้ไหม? ทำงานซ้ำๆ เดิมๆ ทุกวันจนเบื่อ สมัยผมทำร้านเน็ต SiamCafe (ตั้งแต่ปี 1997 โน่น!) ต้องคอยเช็คเครื่อง คอยเคลียร์บิลลูกค้า คอยตอบคำถามเดิมๆ ซ้ำๆ วันละเป็นร้อยรอบ ตอนนั้นยังไม่มี RPA หรอก ก็ต้องทนทำกันไป แต่ถ้ามี RPA ตั้งแต่ตอนนั้นนะ ชีวิตคงสบายขึ้นเยอะเลย!
RPA (Robotic Process Automation) คืออะไร? มันคือเทคโนโลยีที่ใช้ Software Bot มาช่วยทำงานที่เราทำซ้ำๆ เดิมๆ ทุกวันนั่นแหละ ไม่ว่าจะเป็นงานเอกสาร งานป้อนข้อมูล งานเช็คอีเมล หรืออะไรก็ตามที่มันมี Pattern ชัดเจน RPA ทำได้หมด
ทำไม RPA ถึงสำคัญ? เพราะมันช่วยลดเวลา ลดความผิดพลาด และเพิ่มประสิทธิภาพในการทำงาน ทำให้เรามีเวลาไปทำอย่างอื่นที่สำคัญกว่าได้เยอะเลย ลองนึกภาพนะ ถ้าไม่ต้องมานั่งเคลียร์บิลลูกค้าเองทุกวัน ผมคงมีเวลาไปพัฒนา SiamCafe ให้มันเจ๋งกว่านี้ได้อีกเยอะเลย
บทความนี้ ผมจะมาเล่าให้ฟังถึงประสบการณ์ของผมกับการใช้ RPA ในงานต่างๆ ตั้งแต่เรื่องพื้นฐาน ไปจนถึงเรื่องที่ Advance ขึ้นมาหน่อย รับรองว่าอ่านจบแล้ว น้องๆ จะเข้าใจ RPA มากขึ้น และเอาไปประยุกต์ใช้กับงานของตัวเองได้อย่างแน่นอน
RPA ไม่ใช่หุ่นยนต์ที่จับต้องได้นะ แต่มันคือ Software ที่เราสร้างขึ้นมาเพื่อจำลองการทำงานของคน มันจะเรียนรู้การทำงานของเรา แล้วทำตาม Step by Step แบบเป๊ะๆ เหมือนเราสั่งให้มันทำยังไง มันก็ทำตามนั้นเลย
หลักการทำงานของ RPA ง่ายๆ เลยคือ "Record and Replay" คือเรา Record การทำงานของเรา (เช่น การเปิดโปรแกรม การคลิกปุ่ม การป้อนข้อมูล) แล้ว RPA ก็จะ Replay การทำงานนั้นซ้ำๆ ตามที่เรา Record ไว้
ตัวอย่างง่ายๆ สมมติว่าเราต้อง Login เข้าเว็บทุกวัน แล้ว Download รายงานออกมา RPA ก็จะทำหน้าที่ Login ให้เรา Download ให้เรา แล้วส่งรายงานให้เราทางอีเมลแบบอัตโนมัติ เราแทบไม่ต้องทำอะไรเลย นอกจากตั้งค่าให้มันทำงาน
RPA ประกอบไปด้วย 3 ส่วนหลักๆ คือ
RPA เหมาะกับงานที่
ถ้างานของเราเข้าข่ายตามนี้ รับรองว่า RPA ช่วยได้เยอะแน่นอน
หลายคนมองว่า RPA แค่ช่วยลดเวลาในการทำงาน แต่จริงๆ แล้ว RPA มีข้อดีมากกว่านั้นเยอะมากๆ
ลดต้นทุน: RPA ช่วยลดค่าใช้จ่ายในการจ้างคนมาทำงานซ้ำๆ เดิมๆ แถมยังทำงานได้ 24 ชั่วโมง ไม่มีวันหยุด
เพิ่มความแม่นยำ: RPA ทำงานตามที่เราสั่งแบบเป๊ะๆ ทำให้ลดความผิดพลาดที่เกิดจาก Human Error ได้เยอะมากๆ ตอนผมติดตั้งระบบให้ลูกค้าธนาคารแห่งหนึ่ง RPA ช่วยลดความผิดพลาดในการป้อนข้อมูลจาก 5% เหลือแค่ 0.1% เลยนะ!
เพิ่มประสิทธิภาพ: RPA ช่วยให้เราทำงานได้เร็วขึ้น ทำให้เรามีเวลาไปทำงานที่สำคัญกว่าได้เยอะ
เพิ่มความพึงพอใจของพนักงาน: ไม่มีใครอยากทำงานซ้ำๆ เดิมๆ RPA ช่วยให้พนักงานได้ทำงานที่ท้าทายและสร้างสรรค์มากขึ้น
หลายคนอาจจะสงสัยว่า RPA ต่างจาก Automation แบบเดิมๆ ยังไง? ต่างกันตรงที่ RPA ไม่ต้องแก้ไข Code ของระบบเดิม RPA ทำงานโดยการจำลองการทำงานของคน ทำให้มันสามารถทำงานกับระบบอะไรก็ได้ แม้กระทั่งระบบ Legacy ที่เก่าแก่มากๆ
ลองดูตารางเปรียบเทียบนี้ จะเห็นภาพชัดเจนขึ้น
| Feature | RPA | Traditional Automation |
|---|---|---|
| การทำงาน | จำลองการทำงานของคน | แก้ไข Code ของระบบ |
| ความยืดหยุ่น | สูง ทำงานกับระบบอะไรก็ได้ | ต่ำ ต้องแก้ไข Code ของระบบ |
| ความเร็วในการ Implement | เร็ว | ช้า |
| ค่าใช้จ่าย | ต่ำ | สูง |
RPA Tools มีให้เลือกใช้เยอะมากๆ แต่ละตัวก็มีข้อดีข้อเสียต่างกันไป เราต้องเลือกเครื่องมือที่เหมาะกับงานของเรามากที่สุด
UiPath: เป็น RPA Tool ที่ได้รับความนิยมมากที่สุด มี Feature ครบครัน ใช้งานง่าย มี Community ใหญ่
Automation Anywhere: เป็นอีกหนึ่ง RPA Tool ที่ได้รับความนิยม มี Feature ที่เน้นเรื่อง Security และ Compliance
Blue Prism: เป็น RPA Tool ที่เหมาะกับองค์กรขนาดใหญ่ มี Feature ที่เน้นเรื่อง Scalability และ Governance
Open Source RPA: ถ้าอยากลองเล่น RPA แบบฟรีๆ ก็มี Open Source RPA Tools ให้เลือกใช้ เช่น Robocorp, TagUI
อันนี้เป็นตัวอย่าง Code ง่ายๆ ที่ใช้ Robocorp (Open Source RPA) ในการ Login เข้าเว็บ แล้ว Download ไฟล์
from robocorp import browser
from robocorp.tasks import task
@task
def download_report():
browser.open("https://www.example.com/login")
browser.input_text("id:username", "myusername")
browser.input_text("id:password", "mypassword")
browser.click("id:login-button")
browser.click("link:Download Report")
Code นี้จะ Login เข้าเว็บ "https://www.example.com/login" ด้วย Username และ Password ของเรา แล้วคลิกปุ่ม "Download Report" เพื่อ Download ไฟล์ออกมา
ใน UiPath เราสามารถ Config Process ได้ง่ายๆ ผ่าน Graphical User Interface (GUI) เช่น การอ่านข้อมูลจาก Excel แล้วป้อนข้อมูลลงใน Web Form
ตัวอย่างการอ่านข้อมูลจาก Excel:
Excel Application Scope
Path: "data.xlsx"
Read Range
Sheet Name: "Sheet1"
Range: "A1:B10"
Output Data Table: dt_data
Code นี้จะอ่านข้อมูลจาก Excel File "data.xlsx" ใน Sheet "Sheet1" ตั้งแต่ Range "A1:B10" แล้วเก็บข้อมูลไว้ใน Data Table ชื่อ "dt_data"
จากนั้นเราก็สามารถ Loop ผ่าน Data Table แล้วป้อนข้อมูลลงใน Web Form ได้
RPA สามารถนำไปใช้แก้ปัญหาได้หลากหลายมากๆ ลองดูตัวอย่าง Use Cases เหล่านี้
Finance: การทำ Reconciliation, การ Generate Report, การ Approve Invoice
HR: การ Onboarding พนักงานใหม่, การ Process Payroll, การ Manage Leave Request
Sales: การ Generate Lead, การ Update CRM, การ Process Order
IT: การ Monitor System, การ Patch Server, การ Reset Password
Customer Service: การตอบคำถามลูกค้า, การ Process Refund, การ Resolve Complaint
สมัยผมทำร้านเน็ต SiamCafe ถ้ามี RPA นะ ผมจะเอามาใช้ทำอะไรบ้าง?
แค่คิดก็ฟินแล้ว!
เคยเจอเคสนี้ตอนทำโปรเจคให้บริษัท Logistics แห่งหนึ่ง RPA ช่วยลด latency ในการ Tracking สินค้าจาก 200ms เหลือ 15ms ทำให้ลูกค้าพึงพอใจมากๆ
RPA ไม่ได้หยุดอยู่แค่การ Automation งานซ้ำๆ เดิมๆ แต่มันกำลังพัฒนาไปสู่ AI-Powered Automation ที่สามารถเรียนรู้และปรับตัวได้เอง
Intelligent Automation: คือการนำ AI (Artificial Intelligence) มาผสานรวมกับ RPA ทำให้ RPA สามารถทำงานที่ซับซ้อนมากขึ้น เช่น การอ่านเอกสารที่ไม่เป็น Format, การตัดสินใจตามสถานการณ์ต่างๆ, การเรียนรู้จากข้อมูล
Hyperautomation: คือการผสมผสานเทคโนโลยี Automation หลายๆ อย่างเข้าด้วยกัน เช่น RPA, AI, Machine Learning, Process Mining เพื่อสร้างระบบ Automation ที่ครอบคลุมทั้งองค์กร
ผมใช้ RPA มา 5 ปี บอกเลยว่ามันเปลี่ยนโลกการทำงานไปเยอะมากๆ ใครที่ยังไม่เริ่มใช้ RPA ถือว่าพลาดมากๆ
ลองเข้าไปอ่าน SiamCafe Blog ดูสิ มีบทความเกี่ยวกับ RPA อีกเยอะเลย
ถ้าอยากเป็น RPA Developer ต้องมี Skill อะไรบ้าง?
และที่สำคัญ อย่าลืมอัพเดทความรู้ใหม่ๆ อยู่เสมอ เพราะเทคโนโลยี RPA เปลี่ยนแปลงเร็วมากๆ
ลองเข้าไปอ่าน SiamCafe Blog เพื่ออัพเดทความรู้ใหม่ๆ เกี่ยวกับ IT กันนะครับ
ดูวิดีโอเพิ่มเติมเกี่ยวกับRPA คืออะไร:
น้องๆ หลายคนถามว่า "พี่บอม แล้วเราจะรู้ได้ไงว่างานไหนควรใช้ RPA?" จากประสบการณ์ 20 กว่าปีในวงการ IT ผมบอกเลยว่าหัวใจสำคัญคือการเลือกกระบวนการที่ "น่าเบื่อ ซ้ำซาก ทำซ้ำๆ ทุกวัน" งานพวกนี้แหละที่ RPA จะช่วยเราได้เยอะ
ยกตัวอย่างสมัยผมทำร้านเน็ต (SiamCafe.net) ต้องมานั่งเช็คยอดเงินจากธนาคารทุกวัน แล้วเอามาเทียบกับข้อมูลในระบบ member เป็นงานที่น่าเบื่อสุดๆ ถ้าตอนนั้นมี RPA ผมคงสบายไปเยอะ หรือตอนติดตั้งระบบให้ลูกค้า บางทีต้อง configure IP address เป็นร้อยๆ เครื่อง ถ้าใช้ RPA ทำ automation ได้ ชีวิตจะง่ายขึ้นเยอะ
ขั้นตอนการเลือกกระบวนการง่ายๆ คือ ลอง list งานที่เราทำทุกวันออกมา แล้วดูว่างานไหนที่เข้าข่าย "น่าเบื่อ ซ้ำซาก" บ้าง จากนั้นก็ลองประเมินดูว่า ถ้าใช้ RPA แล้วจะประหยัดเวลาได้มากน้อยแค่ไหน ถ้าประหยัดเวลาได้เยอะ คุ้มค่าที่จะลงทุน ก็ลุยเลย!
หลังจากเลือกกระบวนการได้แล้ว ขั้นตอนต่อไปคือการออกแบบ workflow Workflow คือแผนผังการทำงานของ RPA bot ของเรา ต้องละเอียดเหมือนเขียนโปรแกรมเลยแหละ
สมัยก่อนตอนผมเขียนโปรแกรม ผมจะใช้ flowchart เป็นหลัก แต่พอมาทำ RPA ผมว่า Mind Map ก็ช่วยได้เยอะนะ มันทำให้เราเห็นภาพรวมของกระบวนการได้ชัดเจน ลองเขียน Mind Map ของกระบวนการที่เราเลือกมา แล้วแตกย่อยออกเป็นขั้นตอนต่างๆ แต่ละขั้นตอนต้องระบุให้ชัดเจนว่า RPA bot ต้องทำอะไรบ้าง
ตัวอย่าง workflow ง่ายๆ สำหรับการดึงข้อมูลจากเว็บไซต์:
ตอนนี้เครื่องมือ RPA มีให้เลือกเยอะมาก ตั้งแต่แบบ Open Source ไปจนถึง Enterprise-grade ผมแนะนำให้ลองเล่นกับเครื่องมือหลายๆ ตัวดูก่อน แล้วค่อยเลือกตัวที่เหมาะกับเราที่สุด
ถ้าเป็นมือใหม่ ผมแนะนำให้เริ่มจากเครื่องมือแบบ Low-code หรือ No-code เพราะมันใช้งานง่าย ไม่ต้องเขียน code เยอะ แต่ถ้าเรามีพื้นฐาน programming อยู่แล้ว จะใช้เครื่องมือที่ advanced ขึ้นก็ได้
ตัวอย่าง code snippet (UiPath):
// Open Browser
Open Browser "https://www.example.com"
// Type Into (Username)
Type Into "Username Field", "myusername"
// Type Into (Password)
Type Into "Password Field", "mypassword"
// Click (Login Button)
Click "Login Button"
// Get Text (Data)
Get Text "Data Element", dataVariable
// Write Line (Data)
Write Line dataVariable
อันนี้เป็นตัวอย่าง code ง่ายๆ ที่ใช้ UiPath ในการ login เข้าเว็บไซต์ แล้วดึงข้อมูลออกมา แต่ละเครื่องมือ RPA ก็จะมี syntax ที่แตกต่างกันไป แต่หลักการทำงานก็จะคล้ายๆ กัน
หลังจากสร้าง RPA bot เสร็จแล้ว สิ่งที่ขาดไม่ได้เลยคือการทดสอบ ต้องทดสอบหลายๆ รอบ หลายๆ กรณี เพื่อให้แน่ใจว่า bot ทำงานได้อย่างถูกต้อง ผมเคยเจอเคสที่ bot ทำงานได้ดีใน environment ของเรา แต่พอไป run ใน environment ของลูกค้า กลับมีปัญหา เพราะฉะนั้นต้องทดสอบให้ครอบคลุมทุกกรณี
ระหว่างการทดสอบ ถ้าเจอ error หรือ bug ก็ต้องรีบแก้ไข แล้วก็ต้องปรับปรุง workflow ให้มีประสิทธิภาพมากขึ้น บางทีเราอาจจะพบว่ามีขั้นตอนที่ไม่จำเป็น หรือมีวิธีที่ดีกว่าในการทำงาน ก็ต้องปรับปรุงให้ RPA bot ของเราฉลาดขึ้นเรื่อยๆ
สมัยผมทำร้านเน็ต ผมจะชอบใช้ logging ในการ debug โปรแกรม RPA ก็เหมือนกัน เราสามารถใส่ logging เข้าไปใน workflow เพื่อดูว่า RPA bot กำลังทำอะไรอยู่ ถ้าเกิด error ก็จะช่วยให้เราหาสาเหตุได้ง่ายขึ้น
ตัวอย่าง config (log4j):
log4j.rootLogger=INFO, file
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=my_rpa_bot.log
log4j.appender.file.MaxFileSize=10MB
log4j.appender.file.MaxBackupIndex=10
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
อันนี้เป็นตัวอย่าง config ของ log4j ที่ใช้ในการ logging เราสามารถ config ให้ log บันทึกข้อมูลอะไรบ้าง และบันทึกไว้ที่ไหน Logging จะช่วยให้เรา monitor การทำงานของ RPA bot ได้ง่ายขึ้น
RPA bot ไม่ใช่สิ่งที่เราสร้างเสร็จแล้วปล่อยทิ้งไว้ เราต้อง monitor การทำงานของมันอย่างต่อเนื่อง เพื่อดูว่ามันยังทำงานได้ดีอยู่หรือไม่ ถ้าเกิด error หรือปัญหาอะไร เราจะได้แก้ไขได้ทันท่วงที
นอกจากนี้ เรายังต้องทำการ maintenance RPA bot อย่างสม่ำเสมอ เพราะระบบ IT มีการเปลี่ยนแปลงอยู่ตลอดเวลา เว็บไซต์อาจจะเปลี่ยน layout API อาจจะมีการ update ถ้าเราไม่ update RPA bot ของเรา มันก็อาจจะทำงานไม่ได้
สมัยผมติดตั้งระบบให้ลูกค้า ผมจะทำสัญญา Maintenance ไว้ด้วย เพราะระบบ IT มันซับซ้อน มีโอกาสเกิดปัญหาได้ตลอดเวลา RPA ก็เหมือนกัน ต้องมีคนดูแลอย่างใกล้ชิด ถึงจะใช้งานได้อย่างมีประสิทธิภาพ
อันนี้เป็นปัญหาคลาสสิกเลยครับ สมัยผมทำโปรเจคให้บริษัทประกันภัย RPA bot ที่เราสร้างไว้ ดึงข้อมูลจากเว็บไซต์ของคู่แข่ง แต่พอคู่แข่งเปลี่ยน layout เว็บไซต์ RPA bot ก็ error ทันที
วิธีแก้คือ เราต้องออกแบบ RPA bot ให้มีความยืดหยุ่น ให้มันสามารถปรับตัวได้เมื่อเว็บไซต์มีการเปลี่ยนแปลง อาจจะใช้เทคนิคเช่น "Relative Locators" ในการระบุตำแหน่งของ element บนเว็บไซต์ หรือใช้ AI ในการทำ object recognition
เคยเจอเคสที่ต้องดึงข้อมูลจากตารางที่มีรูปแบบเปลี่ยนแปลงบ่อยๆ ผมเลยเขียน function ที่สามารถ detect รูปแบบตารางได้อัตโนมัติ แล้วปรับการดึงข้อมูลตามรูปแบบใหม่ ช่วยลดเวลาในการ maintenance ไปได้เยอะ
RPA bot ส่วนใหญ่ต้อง login เข้าสู่ระบบต่างๆ ถ้า username หรือ password ที่เราใช้หมดอายุ RPA bot ก็จะทำงานไม่ได้ ปัญหานี้เจอบ่อยมาก
วิธีแก้คือ เราต้องมีระบบจัดการ credential ที่ปลอดภัย อาจจะใช้ Vault หรือ Password Manager ในการเก็บ username และ password แล้วให้ RPA bot ไปดึง credential จาก Vault แทนที่จะ hardcode ไว้ใน workflow
ผมใช้ HashiCorp Vault มาหลายปีแล้ว บอกเลยว่ามันช่วยจัดการ secrets ได้ดีมาก RPA bot สามารถ authenticate กับ Vault แล้วดึง credential มาใช้ได้ ปลอดภัยกว่าการเก็บ credential ไว้ใน config file เยอะ
ตัวอย่าง command (Vault):
vault read secret/myapp/db_password
Command นี้จะอ่าน secret ที่เก็บไว้ใน Vault path `secret/myapp/db_password` เราสามารถใช้ command นี้ใน RPA bot เพื่อดึง password มาใช้ได้
iCafeForexRPA bot ที่ดีต้องสามารถ handle error ได้อย่างเหมาะสม ถ้าเกิด error ขึ้นมา จะต้องไม่ crash แต่จะต้องพยายามแก้ไขปัญหา หรือแจ้งเตือนให้คนดูแลทราบ
ผมเคยเจอ RPA bot ที่ error แล้วหยุดทำงาน ทำให้ process ทั้งหมดหยุดชะงัก เสียหายไปเยอะ หลังจากนั้นผมเลยเน้นเรื่อง Error Handling มากเป็นพิเศษ
วิธีแก้คือ เราต้องใส่ Try-Catch block ใน workflow เพื่อดักจับ error ที่อาจเกิดขึ้น ใน Catch block เราอาจจะทำอะไรบางอย่าง เช่น retry, log error, send email แจ้งเตือน แล้วแต่กรณี
ตัวอย่าง code (Python):
try:
# Code ที่อาจเกิด error
result = 10 / 0
except Exception as e:
# Handle error
print(f"Error: {e}")
# Send email notification
send_email("error@example.com", f"RPA Bot Error: {e}")
Code นี้จะดักจับ error ที่เกิดจากการหารด้วย 0 แล้วพิมพ์ข้อความ error ออกมา พร้อมทั้งส่ง email แจ้งเตือนไปยัง email address ที่กำหนด
RPA คือเทคโนโลยีที่มีประโยชน์มาก ถ้าเราใช้งานมันอย่างถูกต้อง มันจะช่วยให้เราประหยัดเวลาและลดความผิดพลาดได้เยอะ แต่ก็ต้องระวังปัญหาที่อาจเกิดขึ้น และเตรียมพร้อมรับมือกับมัน ขอให้น้องๆ ทุกคนสนุกกับการทำ RPA นะครับ!
น้องๆ หลายคน พอได้ยินคำว่า RPA ก็เห่อ อยากเอาไปใช้กับทุกสิ่งอย่าง ผมบอกเลยว่า "ใจเย็นๆ" สมัยผมทำร้านเน็ต SiamCafe ผมเคยอยากทำระบบ auto reboot เครื่องลูกข่ายทุกวันตอนตี 3 เพราะกลัวเครื่องแฮงค์ สุดท้ายทำไปทำมา เครื่องเจ๊งบ่อยกว่าเดิมอีก เพราะ script มันดันไปชนกับ process สำคัญอื่นๆ
ดังนั้น เริ่มจาก process ที่เรา "เข้าใจ" จริงๆ ก่อน เข้าใจ flow มัน เข้าใจเงื่อนไขต่างๆ เข้าใจว่าอะไรคือ input อะไรคือ output แล้วค่อยมาดูกันว่า RPA จะเข้ามาช่วยตรงไหนได้บ้าง อย่าเพิ่งมองภาพใหญ่ มองแค่จุดเล็กๆ ที่ทำได้จริงก่อน
ตัวอย่าง Process ที่เหมาะกับการเริ่มต้น: ดึงข้อมูลจาก Excel sheet แล้วเอาไปใส่ใน Web form (อันนี้เบสิค แต่เวิร์คจริง!) หรือการสร้าง report ง่ายๆ จาก database แล้วส่ง email ให้ทีมทุกเช้า
RPA Tool มีเยอะมากกกก ตั้งแต่ Open source ยัน Enterprise-grade solution ผมเคยลองมาหลายตัว แต่ละตัวก็มีข้อดีข้อเสียต่างกันไป
ตอนผมติดตั้งระบบให้ลูกค้าแบงค์แห่งหนึ่ง ผมเคยใช้ tool ตัวหนึ่งที่เคลมว่า "No-code" แต่พอเอาเข้าจริง ต้องเขียน script Python เยอะมากกกก กว่าจะทำตาม requirement ได้ เสียเวลาไปเป็นเดือน
ดังนั้น เลือก tool ที่ "ตอบโจทย์" จริงๆ ไม่ใช่แค่ตามกระแส ดูเรื่อง scalability, security, integration กับระบบเดิมของเราด้วย ที่สำคัญ ดูเรื่อง "ราคา" ด้วยนะ บางทีของฟรีก็ไม่ได้แย่เสมอไป
ถ้าเริ่มต้น แนะนำให้ลอง UiPath Community Edition หรือ Automation Anywhere Community Edition ก่อนก็ได้ครับ ฟรี แถมมี tutorial เยอะแยะเลย
RPA Bot มันคือ "ตัวแทน" ของเรา ที่ทำงานแทนเรา ดังนั้น มันต้องเข้าถึงข้อมูลสำคัญๆ ของเราได้ ไม่ว่าจะเป็น username, password, database connection string, API key etc.
เคยเจอเคสนี้ตอนทำโปรเจคให้โรงพยาบาลแห่งหนึ่ง RPA Bot มันดันไปเก็บ password ของ database ไว้ใน plain text file ใครมาเปิดดูก็เจอเลย อันตรายมากๆ
ดังนั้น ต้องให้ความสำคัญกับ security ตั้งแต่ design เลย Encrypt sensitive data, ใช้ role-based access control, monitor bot activity อย่างสม่ำเสมอ ที่สำคัญ อย่าลืมเปลี่ยน password เป็นประจำ
ตัวอย่างการ encrypt password ใน Python (ใช้ library `cryptography`):
from cryptography.fernet import Fernet
# Generate a key (keep this secret!)
key = Fernet.generate_key()
f = Fernet(key)
# Encrypt the password
password = b"MySecretPassword"
encrypted_password = f.encrypt(password)
# Decrypt the password
decrypted_password = f.decrypt(encrypted_password)
print(encrypted_password)
print(decrypted_password)
RPA Bot ไม่ใช่ magic wand ที่จะทำงานได้เองตลอดไป มันอาจจะเจอปัญหา unexpected error, network timeout, application crash etc.
สมัยผมทำร้านเน็ต ผมเคยเจอเครื่องลูกข่าย reboot เองตอนลูกค้ากำลังเล่นเกมส์อยู่ ปรากฏว่า RAM มันเสีย แต่ผมไม่รู้ เพราะไม่มีระบบ monitoring ดีๆ สุดท้ายเสียลูกค้าไปหลายคน
ดังนั้น ต้องมีระบบ monitoring ที่ดี คอย monitor bot activity, resource usage, error log etc. ถ้าเจอปัญหา ต้อง alert ให้เราทราบทันที จะได้เข้าไปแก้ไขได้ทันท่วงที
ตัวอย่างการ logging ใน Python:
import logging
logging.basicConfig(filename='bot.log', level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
try:
# Code that might raise an exception
result = 10 / 0
except Exception as e:
logging.error(f"An error occurred: {e}")
logging.info("Bot completed successfully")
RPA ไม่ใช่ one-time project มันต้องมีการปรับปรุงและพัฒนาอย่างต่อเนื่อง Process ที่เรา automate วันนี้ อาจจะไม่เวิร์คในวันพรุ่งนี้ เพราะ business requirement มันเปลี่ยนไปตลอดเวลา
ตอนผมติดตั้งระบบให้ลูกค้าธนาคารแห่งหนึ่ง ผมเคยทำ RPA Bot ที่ดึงข้อมูลอัตราแลกเปลี่ยนจาก website แห่งหนึ่ง ปรากฏว่า website นั้นเปลี่ยน layout บ่อยมาก ทำให้ bot ใช้งานไม่ได้ ต้องแก้ code กันแทบทุกเดือน
ดังนั้น ต้อง iterate & improve อย่างต่อเนื่อง เก็บ feedback จาก users, monitor bot performance, identify bottlenecks แล้วปรับปรุง process ให้ดีขึ้นเรื่อยๆ
RPA เหมาะกับงานที่ "ซ้ำซาก จำเจ" ทำเป็น routine และมี rules ชัดเจน เช่น การกรอกข้อมูล, การย้ายไฟล์, การสร้าง report, การตรวจสอบข้อมูล ฯลฯ ถ้างานนั้นต้องใช้ "ความคิดสร้างสรรค์" หรือ "วิจารณญาณ" RPA อาจจะไม่เหมาะ
RPA ไม่ได้มาแย่งงานคน แต่มา "ช่วย" คนทำงาน งานที่ RPA ทำได้ มักจะเป็นงานที่น่าเบื่อและเสียเวลา ถ้าเราให้ RPA ทำงานเหล่านั้นแทน เราก็จะมีเวลาไปทำงานที่สำคัญกว่า เช่น การวางแผนกลยุทธ์, การพัฒนาผลิตภัณฑ์, การสร้างความสัมพันธ์กับลูกค้า ฯลฯ
RPA Tool สมัยใหม่ หลายตัวเป็น "No-code" หรือ "Low-code" คือไม่ต้องเขียน code เยอะ ก็สามารถสร้าง bot ได้ แต่ถ้ามีความรู้ programming บ้าง ก็จะช่วยให้เราสร้าง bot ที่ซับซ้อนและยืดหยุ่นมากขึ้นได้ ผมแนะนำให้ลองเรียน Python หรือ JavaScript พื้นฐานดูก่อน
RPA ปลอดภัย ถ้าเรา implement อย่างถูกต้อง ตาม best practices ที่ผมได้กล่าวมาข้างต้น ต้องให้ความสำคัญกับ security ตั้งแต่ design, encrypt sensitive data, monitor bot activity etc. ที่สำคัญ ต้องเลือก RPA Tool ที่มี security features ที่ดี
ค่าใช้จ่ายของ RPA ขึ้นอยู่กับหลายปัจจัย เช่น จำนวน bots ที่เราต้องการ, complexity ของ process, ประเภทของ RPA Tool ที่เราใช้ ฯลฯ ถ้าเริ่มต้น อาจจะลองใช้ Open source RPA Tool หรือ Community Edition ก่อนก็ได้ ถ้าต้องการ scalability และ features ที่ advanced อาจจะต้องลงทุนกับ Enterprise-grade solution
RPA เป็น technology ที่น่าสนใจ และมี potential ที่จะเปลี่ยนแปลงวิธีการทำงานของเรา แต่ก็ต้องใช้ให้ถูกวิธี ต้องเริ่มจาก process ที่เข้าใจจริงๆ, เลือก tool ที่เหมาะสม, ให้ความสำคัญกับ security, monitor bot activity อย่างสม่ำเสมอ และ iterate & improve อย่างต่อเนื่อง
สำหรับน้องๆ ที่สนใจอยากเรียนรู้ RPA อย่างจริงจัง ผมแนะนำให้ลองหา course online หรือ workshop ที่สอนโดยผู้เชี่ยวชาญ จะช่วยให้เข้าใจหลักการและเทคนิคต่างๆ ได้เร็วขึ้น และที่สำคัญ อย่าลืมลงมือทำจริง ลองสร้าง bot ง่ายๆ ด้วยตัวเอง จะได้เห็นปัญหาและเรียนรู้จากประสบการณ์จริง
สุดท้ายนี้ ขอฝาก SiamCafe Blog ไว้ด้วยนะครับ ผมจะพยายามเขียนบทความเกี่ยวกับ IT ที่เป็นประโยชน์ ให้ทุกคนได้อ่านกันเรื่อยๆ