รู้จักกับการทำ Web Automated ด้วย Robot Process Automation (RPA) with Kapow (Kofax)

Ploy Thanasornsawan
6 min readJul 20, 2019

--

วันนี้ก็จะมาแชร์ประสบการณ์ลองเล่น RPA ให้ทุกคนได้อ่านกัน พอดีได้รับโจทย์มาว่า ลูกค้าบริษัทอยากได้อะไรที่แบบ Automated ได้ ลดการทำงานซ้ำๆ มันก็เลยมี Tools นี้ขึ้นมาคือ RPA หรือ Robot Process Automation

หน้าตาโปรแกรม Design Studio ของ Kapow ที่เอาไว้สร้าง Robot

อะไรที่เรียกว่าการทำงานซ้ำๆ ยกตัวอย่างระบบการทำงานแบบ Batch job ของธนาคารที่ต้องมีการรายงานผลสรุปเงินเข้าออกทั้งหมดทุกรายการทุกสิ้นเดือน ส่งให้กับธนาคารแห่งประเทศไทย มันก็คือการทำงานแบบซ้ำๆเนาะ จะขอยกตัวอย่างจากที่ลองเล่น BOT Kapow ให้ได้ลองเห็นภาพกัน ^^

ลักษณะการทำงานแบบนี้เราก็เอา RPA มาใช้ได้ คือ BOT ที่เราสร้างสามารถไปดึงรายการจากเว็บไซต์ภายนอก จากไฟล์ pdf, excel, json, image เอามาได้หมดแล้วมาสรุปแต่ส่วนที่ต้องการส่งเมลล์ให้อัตโนมัติทุกๆสิ้นเดือนแบบที่เราต้องการได้เลย แถมตั้ง schedule ให้มีการเก็บข้อมูลที่อัพเดทอยู่ตลอดจาก database มาโชว์บน logs ได้ด้วย คือไม่ต้องกลัวใครไปแอบแก้ database เราแล้วข้อมูลเก่าไม่มีประวัติให้ดู ถ้าเราใช้ BOT ให้ดึงข้อมูลแบบ schedule ไว้ทุกวินาที หรือทุกชั่วโมง หรือรายวัน หรือรายสัปดาห์ ทำได้หมด

ภาพแสดงขั้นตอนการสร้าง schedule ให้ BOT โดยการคลิ๊กขวาที่ชื่อ Robot นั้นๆ
พอหลังจากกดเลือก create schedule จะมีหน้าต่าง pop-up ให้ตั้งค่าว่าอยากให้มันทำทุกช่วงเวลาไหน
หลังจาก Robot เริ่มรัน schedule พอมาหน้า Log จะโชว์การทำงานของ BOT ชื่อนั้นว่ายังรันอยู่ปกติแล้วมี error รึป่าว

หรือระบบที่ต้องทำการล็อคอินบ่อยๆเพื่อเข้าไปอ่านข้อมูลมาบันทึกลงไฟล์เอกสาร อย่างเช่น ระบบ Summary Report ที่พนักงานต้องการรู้ว่าช่วงวันที่เท่านี้ ของรายการประเภทนี้ มีรายรับเท่าไร ของอีกประเภทหนึ่ง มีรายรับเท่าไร ถ้ามีมาสัก 50 รายการ พนักงานก็นั่งคลิกวันที่ คลิก dropdown เลือกประเภทที่ต้องการบ่อยๆ ทั้งหมด 50 ประเภท ในช่วงวันที่เท่านี้เหมือนๆกัน อันนี้ก็เรียกเป็นการทำงานซ้ำๆแล้ว เราสามารถเขียน BOT ให้ทำการ Login เอง แล้วก็กดปุ่มเองด้วย Filter หาแท๊กที่ต้องการเช่น <div id= ‘type’> แล้วก็ใส่ Loop ให้ BOT ทำการกดปุ่มซ้ำๆเพื่อเปลี่ยนประเภทไปตามแท๊กที่เรา Filter และสมมติถ้าเกิดต้องการเอาวันที่ช่วงซ้ำๆทุกเดือน ก็ต้องเป็นการทำงานแบบ Schedule แต่ถ้าเกิดมีการต้องแก้ไขบางเงื่อนไข เช่น วันที่เท่านั้น แต่อย่างอื่นยังคงเป็นการทำงานแบบซ้ำๆบนหน้าเว็บ ก็ใช้การทำงาน BOT แบบ Trigger แทน คือรอคนมาทริกให้เจ้า BOT นี้ทำงาน แล้วจะไปเปลี่ยนเงื่อนไขอะไรก็บอก BOT ไป

รูปแสดงการทำงานแบบให้ BOT กดที่ไหน โดยการคลิ๊กที่ Html ของสิ่งนั้นแล้วคลิ๊กขวาเลือกประเภทการทำงาน

บทบาทสำคัญของ RPA กับ Business ในการทำเว็บในอนาคตคงน่าจะแบบรูปนี้

ยกตัวอย่างการวิเคราะห์กองทุนรวม ที่ต้องไปเก็บราคาหุ้นจากบริษัทโน้นนี้ที่กองทุนนี้ใส่ไว้ ถ้าตามรูปก็ให้ RPA ไปวิ่งเก็บ Data มาแล้วก็ส่งต่อให้ machine ไป learn data เฉพาะส่วนที่ส่วนใจ คำนวณแนวโน้มทิศทางของราคาหุ้นที่ขึ้นๆลงๆ แล้วก็เอาผลส่งต่อไปให้ AI วิเคราะห์อีกทีว่ามันจะให้ผลลัพธ์การลงทุนแบบไหน

จากเคสตัวอย่างที่เล่าไป เราสามารถเอา RPA มาปรับใช้กับการ Testing ของ Software tester ได้อีกด้วย เพราะในการ Test Software ให้ได้ครบทุกเคส แล้วพอ Test เสร็จ ผลลัพธ์ไม่เป็นไปตามที่ Business ต้องการในครั้งแรก ก็ต้องมีการ Test ซ้ำๆเรื่อยๆ แถมต้องมาเขียน report รายงานผลการ test อีกว่าเคสไหนบ้างไม่ผ่าน ทำด้วยวิธีไหน ผลลัพธ์ที่ได้เป็นยังไง ก็ให้ BOT จัดการแทนสิ BOT สามารถกดปุ่มเองได้นะ สามารถ filter หาแท๊ก html แบบต่างๆได้ ถ้า BOT หาปุ่มไม่เจอหรือกดปุ่มแล้วไม่เกิดผลอะไรขึ้น ก็ให้ BOT รายงานผลลง Excel ส่งเข้าเมลล์ให้ dev คนนั้นแก้สิ!! คือ BOT มันล็อคอินเองได้ ส่งเมลล์เองได้ มีฟังก์ชั่นเชื่อมต่อ Oauth ด้วย

ถ้าใครอยากลองเล่น Kapow ตามคือต้องบอกก่อนว่าสมัครฟรี แต่ใช้ไม่ฟรีนะ 5555+ ตัว Kapow สามารถทดลองตัว Trial ได้ฟรีนานสุด 12 เดือน (ตอนนี้ก็ใช้แบบนี้ทดลองเล่นอยู่) เล่นง่ายมากฝึกลองตาม Manual ก็เข้าใจ เป็นโปรแกรมประเภท UI ไม่ต้อง Coding อะไรทั้งนั้น แต่มันบังคับว่าต้องใช้อีเมลล์บริษัทสมัครใช้งานเพื่อดาวน์โหลดแล้วมันก็จะส่งเลข Searial มาให้เราในเมลล์และลิงค์สำหรับดาวน์โหลดเฉพาะของ Serial นี้ คือ เข้าใจว่า Kapow ถูกใช้ในระดับ Enterprise มากกว่า นิยมใช้กับธนาคารใหญ่ๆ มันมี Built-in Analytic วิเคราะห์และมอนิเตอร์ logs ให้ ดังนั้นในเรื่องของ RPA คนจะไปรู้จัก UI Path มากกว่าเพราะมีเวอร์ชั่น Community (ใช้ฟรี) กับ เวอร์ชั่น Enterprise (เสียตังค์)

แต่ถ้าใครต้องการเอา BOT ที่เราสร้างจาก Kapow ไปปลั๊กเข้ากับโปรเจคเราแบบ Coding ก็ทำได้เหมือนกัน โดยหลังจากเรา Upload BOT ขึ้นหน้า Management console มันจะ provide api ของ BOT ตัวนั้นให้ด้วยว่าไปเรียก Library ไหนมา หน้าตาของโค๊ดใช้ตัวแปรอะไร ตอนนี้ที่ดูคือเหมือนเขารองรับแค่ Java, .Net เราก็เลือกเอาที่ถนัด นอกจากนี้ ยังมีแบบ Rest กับ Soap ด้วย เป็นทางเลือกเพื่ออำนวยความสะดวกให้ Developer อย่างเรา อย่างเช่นเรามีโปรเจคอยู่ในมือ 3 โปรเจค แต่ละโปรเจคมีส่วนที่เหมือนกันอยู่คือต้องไปดึงข้อมูลจากเว็บนอก พวกเว็บตลาดหุ้น เพื่อเอามาวิเคราะห์แสดงผลในเว็บของเราเอง เราก็สั่ง BOT ไปเก็บข้อมูลเว็บนั้นดึงข้อมูลมา ถ้าดึงข้อมูลอย่างเดียวก็เลือกแบบ Rest get api ซึ่งสามารถเลือกได้อีกด้วยว่า จะให้เป็น Application content ตอนตอบกลับเป็น json หรือ xml

ตรงนี้ที่ชื่อ Robot ที่เราทำการ Upload ขึ้นไปยัง management console จะมี api provide ให้เป็นภาษา java ตามรูป
เราสามารถสั่งให้ Robot run ได้ด้วยการใช้ Rest api get ในแบบ json ได้
https://www.rpic.com/software-services/kofax/kofax-kapow/
ภาพสรุปการทำงานของ Kapow

จากรูปในส่วนของ Build ตัว Kapow จะประกอบด้วยส่วนหลักๆ 4 ส่วน

  1. Design Studio

ในส่วนของ Design studio จะเป็นที่สำหรับสร้างการทำงานของ Robot แบบ UI

-ในส่วนของ action step ของ Robot ด้านขวามาจากเรากดInsert step before selected step ที่ไอคอนนี้

ก็จะเห็นว่า Robot สามารถทำได้หลายแบบมาก ยกตัวอย่างคำว่า “Load page” สามารถใช้กับการโหลดโดยการเปิดหน้าเว็บไซต์ หรือเปิดไฟล์ในเครื่อง

- My project ด้านซ้ายจะเป็นส่วนจัดการงาน สร้างโฟล์เดอร์ไฟล์ต่างๆ สร้าง robot, snippets, type, database ซึ่งเวลาสร้าง robot 1 job จะต้องมีการกำหนด type ว่าจะให้มีตัวแปรอะไรบ้างในการเก็บข้อมูลที่ได้จาก Robot

อย่างในรูปนี้เราสร้างขึ้นมา 3 ตัวแปร คือ Description, overview, price โดยกำหนดว่าให้ทั้งสามตัวนี้เก็บข้อมูลแบบ Text และถ้า Robot ของเราต้องการบันทึกค่าสามค่านี้ลง Database เราจะต้องเลือกให้ตัวใดตัวหนึ่งที่ค่าไม่มีทางซ้ำเป็น Key ก็ติ๊กว่าเป็น Part of database key แบบ Description ในรูป

ตัว snippest เราสร้างในลักษณะเป็นมอดูลหรือฟังก์ชั่นใช้ซ้ำ หลังจากเราสร้าง robot ไปตัวหนึ่งแล้วเราเห็นว่าฟังก์ชั่นส่วนนี้จะต้องมีการเขียนอีกครั้งใน Robot อีกตัว เช่น การเรียกไฟล์ excel เดียวกัน แต่เอาผลลัพธ์ไปทำต่างกัน เราก็ Group เฉพาะส่วนของการเปิด excel ไฟล์นี้แล้ว create snippest เพื่อที่ robot ตัวอื่นสามารถเรียกใช้ได้

-ในส่วนของการออกแบบการทำงาน Robot เราจะทำที่ Tab design แต่เวลา run robot เพื่อเช็ค output และ error ต่างๆเราจะกดไปที่แท๊บ Debug แล้วกดปุ่ม Run

การแสดงผลในหน้า debug จะโชว์ Input/Output ทั้งหมดที่ได้ รวมถึง error ถ้าเกิดขึ้น จะมีการบอกว่าเกิดที่ action step ไหน

2. Management Console

ตัว management console เปรียบเหมือนหน้า admin dashboard ที่เราสามารถเช็คได้ว่ามี Robot ตัวไหนบ้างในระบบ ข้อมูล logs การตั้งค่า schedule job ให้ robot แต่ละตัว การตั้งค่า cluster การจัดการสิทธิ์เรื่องความปลอดภัย หรือดูว่าใน Database ระบบเรามีข้อมูลอะไรบ้างจาก Tab Data

อย่างอันนี้เรามี database อยู่ในระบบสองตัวคือ objectdb (database ของ kapow)กับ mysqldb (database ที่เราเพิ่มเข้าไปในระบบ) ในรูปเราสามารถดูทั้งชื่อ database, tables, data ทั้งหมด

3. Roboservers กับ Database share repository

ในรูปคือตัวอย่างการ connection RoboServer ที่ Port 50080
ในรูปคือตัวอย่างของ Database kapow ที่จะรันอยู่ที่ port 1527

คือทุกครั้งที่เราจะเปิดใช้งานโปรแกรม Design Studio และหน้า Management console เราจะต้องเปิดสอง console นี้ทิ้งไว้เสมอ ถ้าปิดก็คือตัดการเชื่อมต่อ เราอาจจะเปิดแต่ RoboServer แต่ไม่เปิด Database console ก็ได ้ถ้าไม่ได้คิดจะเขียน Robot ติดต่อ Write/Read Database ของ Kapow

4. Desktop Automation Service

Desktop automation จะถูกนำมาใช้ใน Design studio อีกทีในการ extract data จาก document อย่างไฟล์ invoice.tiff

อย่างอันนี้เราต้องการดึงค่า invoiceid, invoiceNumber ออกมาจากไฟล์ document invoice โดยจิ้มที่ attribute field ที่เราสนใจแล้วคลิ๊กขวาเลือก extract ข้อมูลเข้าตัวแปรที่เราประกาศไว้ใน type

พอกด run มาถึง step extract ตัว robot จะไปหา field ชื่อนี้ที่อยู่ใน document ให้

นอกจากนี้ ส่วนย่อยที่น่าสนใจสำหรับ End user เอาไว้จัดการ ไม่ต้องเห็นหน้าตา robot ที่เราเขียนก็สั่ง Robot ให้ run ได้ ดูผลลัพธ์ logs ได้คือ Kapplets

การทำงานของ Kapplets จะเชื่อมต่อกับหน้า management console ในลักษณะที่เราสามารถเพิ่ม Robot ตัวไหนก็ได้จากหน้า management console เพื่อจะทำการรันที่หน้า Kapplets (เปรียบเหมือนเว็บสำหรับ End user แต่ management console เปรียบเหมือนเว็บสำหรับ admin management) ซึ่งในรูปคือทำการรัน Robot ที่ทำหน้าที่ดึงข้อมูลจาก excel field ที่ชื่อว่า article ออกมาเป็น output

ในส่วนของ share repository database ตัว kapow จะมี database ติดตั้งมาให้ด้วยอยู่แล้วคือ objectdb กับ logdb เป็น database แบบ SQL

แต่ถ้าใครอยากลอง custom ใช้ database ตัวอื่น เช่น Mysql, Oracle sql, Microsoft SQL server, IBM DB2 ก็สามารถทำการเพิ่ม Type database ได้บนหน้า management console ซึ่งตัว Kapow ไม่ได้ provide driver database แต่ละแบบมาให้ เราต้องไปหาดาวน์โหลดเอาเอง แล้วก็ติดตั้ง database ชนิดนั้นๆลงบนเครื่องเรา เพราะมันจะทำการเชื่อมต่อกันโดยการเช็คว่ามันมีชื่อ Database และ Schema หรือชื่อ Table นี้อยู่จริง เราถึงจะสามารถให้ BOT เรียกใช้ได้ ตอนทำการเพิ่ม Database ใหม่ โดยไปที่ Tab Admin> RoboServers

คลิ๊กที่ไอคอนใต้คอลลัมน์ Setting แล้วจะมีหน้าต่าง pop-up แสดง ให้คลิ๊กที่คำว่า Database แล้วกด add database

พอ add database เรียบร้อย เราก็ต้องมาที่ Tab Repository>Datbases เพื่อทำการ Map database กับ cluster

พอ Map เสร็จ เราก็มาที่โปรแกรม Design studio ที่ พาร์ท Database มุมซ้ายล่าง แล้วคลิ๊กขวาที่คำว่า Management Console เพื่อทำการ Refresh ทีนี้ถ้าเกิดเราอยากให้ Robot เขียนลง Database ตัวใหม่ ก็สามารถทำได้แล้ว

ถ้าใครสนใจ RPA อยากรู้ว่าจริงๆแล้วมันมี platform ตัวไหนบ้างนอกจาก Kapow ให้ลองเข้าเว็บนี้ดู

แต่ถ้าใครเคยลอง UI Path มาแล้ว (RPA ที่นิยมตัวหนึ่ง) แล้วอยากรู้ว่าแตกต่างยังไงกับ Kapow มีบล็อคที่เคยมีคนรีวิวไว้ลิงค์นี้

แหล่งเรียนรู้ Kapow ที่สามารถเรียนรู้ได้ฟรี

--

--

Ploy Thanasornsawan
Ploy Thanasornsawan

Written by Ploy Thanasornsawan

Sharing knowledge about security and automation techniques.

Responses (1)