OneAudit Rule Editor (เรียกสั้น ๆ ว่า Rule Engine) คือเครื่องมือสำหรับสร้างกฎ (Rule) เพื่อใช้ตรวจสอบข้อมูลแบบ Low-Code/No-Code โดยผู้ใช้งานไม่จำเป็นต้องเขียนโปรแกรมหรือคำสั่ง SQL ด้วยตนเอง
โดยปกติแล้ว การสร้างกฎตรวจสอบข้อมูลมักต้องอาศัยนักพัฒนาระบบหรือผู้เชี่ยวชาญด้านฐานข้อมูลในการเขียนโค้ด แต่ในหลายองค์กร ผู้ที่เข้าใจกฎหรือเงื่อนไขทางธุรกิจมากที่สุดกลับเป็นเจ้าหน้าที่ผู้ปฏิบัติงาน นักวิเคราะห์ข้อมูล หรือผู้เชี่ยวชาญเฉพาะด้าน ซึ่งอาจไม่มีพื้นฐานด้านไอทีและการเขียนโปรแกรม การสร้างหรือปรับปรุงกฎจึงต้องอาศัยการสื่อสารกับทีม IT เพื่อถ่ายทอดกฎให้ผู้พัฒนานำไปเขียนโค้ด ซึ่งอาจทำให้เกิดความคลาดเคลื่อนและความล่าช้าในการสร้างหรือปรับปรุงกฎ
Rule Editor ถูกพัฒนาขึ้นเพื่อแก้ปัญหานี้ โดยใช้แนวคิด Low-Code / No-Code ที่ช่วยให้ผู้ที่รับผิดชอบกฎการตรวจสอบข้อมูลสามารถออกแบบกฎผ่านหน้าจอแบบกราฟิก (Visual Editor) ด้วยการลาก วาง และเชื่อมต่อองค์ประกอบต่าง ๆ เข้าด้วยกัน เหมือนการวาดแผนผังการทำงาน ทำให้เข้าใจง่าย มองเห็นลำดับการทำงานของกฎได้ชัดเจน และแก้ไขได้สะดวก

ภายใน Rule Editor กฎจะถูกสร้างในรูปแบบ Rule Graph ซึ่งประกอบด้วย Node หลายประเภท เช่น
- Select Node ใช้สำหรับการเลือกฟิลด์ข้อมูลที่ต้องการนำมาใช้งานในกฎ
- Transform Node ใช้สำหรับการแปลงข้อมูล
- If-Else และ Switch Node ใช้สำหรับการตรวจสอบเงื่อนไข
- Fork Node ใช้สำหรับการแตกแขนงเส้นทางการทำงานของกฎ
- Flag Node ใช้สำหรับการสร้างผลลัพธ์หรือข้อความอธิบายเหตุผลของผลลัพธ์
ผู้ใช้สามารถนำ Node เหล่านี้มาเชื่อมต่อกันเพื่อสร้างตรรกะการตรวจสอบข้อมูลที่ซับซ้อนได้ โดยไม่จำเป็นต้องเขียนโค้ด
ตัวอย่างเช่น หากต้องการตรวจสอบสิทธิ์เข้าร่วมโครงการ E-Wallet ผู้ใช้อาจกำหนดเงื่อนไขบน Rule Editor ว่า
- ผู้สมัครต้องมีอายุมากกว่า 16 ปี
- ต้องมีสัญชาติไทย
- รายได้ต้องไม่เกินเกณฑ์ที่กำหนด
เงื่อนไขเหล่านี้จะถูกนำไปสร้างกฎด้วย Rule Editor จากนั้น Rule Engine Cluster ซึ่งเป็นระบบประมวลผลกฎของ OneAudit จะนำกฎดังกล่าวไปตรวจสอบข้อมูลของผู้สมัครตามเงื่อนไขที่กำหนด เพื่อระบุสิทธิ์ของผู้สมัคร พร้อมสร้างผลการตรวจสอบและเหตุผลประกอบ เช่น “ไม่ผ่านการตรวจสอบ เนื่องจากผู้สมัครไม่มีสัญชาติไทย” สำหรับผู้สมัครที่ไม่ผ่านเงื่อนไขที่สอง
จุดเด่นสำคัญของ Rule Editor คือไม่เพียงแค่ระบุว่าข้อมูลที่ถูกตรวจสอบ “ผ่าน” หรือ “ไม่ผ่าน” เท่านั้นแต่ยังสามารถแสดงเหตุผลประกอบเพื่อใช้อธิบายผลการตรวจสอบ ทำให้ผู้ใช้งานสามารถนำผลการตรวจสอบพร้อมเหตุผลไปใช้งานได้ง่าย ยิ่งไปกว่านั้นระบบยังสามารถแสดงขั้นตอนการตรวจสอบย้อนกลับ (Traceability) เพื่อเปรียบเทียบข้อมูลกับเงื่อนไขในกฎ ทำให้อธิบายที่มาของผลการตรวจสอบที่เกิดขึ้นได้ อย่างชัดเจน เพื่มความมั่นใจแก่ผู้ใช้
นอกจากนี้ ระบบยังมีเครื่องมือช่วยตรวจสอบความถูกต้องของกฎระหว่างการออกแบบ เช่น การอ้างอิงฟิลด์ที่ไม่มีอยู่ การใช้ตัวแปรผิดประเภท หรือการตั้งค่าเงื่อนไขที่ไม่สมบูรณ์ ซึ่งจะช่วยลดข้อผิดพลาดก่อนนำกฎไปใช้งานจริง
โดยสรุป Rule Editor คือเครื่องมือที่ช่วยให้ผู้ที่รับผิดชอบกฎการตรวจสอบข้อมูลสามารถสร้างและปรับปรุงกฎการตรวจสอบข้อมูลได้ด้วยตนเอง ผ่านหน้าจอแบบกราฟิกที่เข้าใจง่าย ลดการพึ่งพาการเขียนโปรแกรม และช่วยให้การจัดการกฎมีความรวดเร็ว โปร่งใส และตรวจสอบย้อนกลับได้
1.1 แนวคิดพื้นฐาน (Core Concept)
การทำความเข้าใจแนวคิดในการสร้างกฎของ OneAudit Rule Editor ถือเป็นหัวใจสำคัญของการใช้งานระบบ และเป็นพื้นฐานที่ช่วยให้ผู้ใช้งานสามารถออกแบบกฎได้อย่างถูกต้อง เข้าใจการทำงานของระบบ และสามารถวิเคราะห์ผลลัพธ์ที่เกิดขึ้นได้อย่างมีประสิทธิภาพ
Rule Graph
OneAudit ใช้แนวคิดที่เรียกว่า Rule Graph ในการออกแบบกฎการตรวจสอบข้อมูล โดยแสดงลำดับการทำงานของกฎในรูปแบบแผนภาพ ทำให้ผู้ใช้งานสามารถมองเห็นภาพรวมของการทำงานได้อย่างชัดเจน
ภายใน Rule Graph จะประกอบด้วยองค์ประกอบที่เรียกว่า Node ซึ่งแต่ละ Node จะมีหน้าที่แตกต่างกันออกไป เช่น การอ่านข้อมูล การแปลงข้อมูล การตรวจสอบเงื่อนไข การแตกแขนงการทำงาน หรือการสร้างผลลัพธ์ของการตรวจสอบ จากนั้นผู้ใช้งานสามารถเชื่อมต่อ Node เหล่านี้เข้าด้วยกันเพื่อสร้างลำดับการทำงานตามตรรกะที่ต้องการ
ข้อดีของแนวคิดการออกแบบกฎด้วย Rule Graph คือช่วยให้เข้าใจการทำงานของกฎได้ง่าย เพราะสามารถมองเห็นเส้นทางการไหลของข้อมูลและลำดับการตรวจสอบได้อย่างเป็นขั้นตอน นอกจากนี้ยังช่วยให้การแก้ไขและตรวจสอบกฎทำได้สะดวกกว่าการเขียนโค้ดหรือคำสั่ง SQL จำนวนมาก
ผลการตรวจสอบและคำอธิบายเหตุผล
หนึ่งในแนวคิดสำคัญของ OneAudit คือ “ผลการตรวจสอบที่มาพร้อมข้อความอธิบายเหตุผล”
โดยทั่วไป ระบบตรวจสอบข้อมูลที่แสดงผลลัพธ์เพียงว่า “ผ่าน” หรือ “ไม่ผ่าน” เท่านั้น ไม่เพียงพอสำหรับผู้ใช้งานที่ต้องการทราบสาเหตุของผลการตรวจสอบ หรือผู้ที่ต้องนำผลลัพธ์ไปใช้ประกอบการตัดสินใจ
OneAudit จึงออกแบบให้ผลการตรวจสอบประกอบด้วยสถานะของผลลัพธ์ (เช่น “ผ่าน” หรือ “ไม่ผ่าน”) และข้อความอธิบายเหตุผลประกอบผลลัพธ์นั้นเพื่อเพิ่มความชัดเจน ตัวอย่างเช่น “ไม่ผ่านการตรวจสอบ เนื่องจากรายได้เกินเกณฑ์ที่กำหนด” หรือ “ไม่ผ่านการตรวจสอบ เนื่องจากไม่พบข้อมูลยืนยันตัวตน”
แนวคิดนี้ช่วยให้ผู้ใช้งานเข้าใจผลลัพธ์ได้ง่ายขึ้น ลดเวลาในการวิเคราะห์สาเหตุของปัญหา และเพิ่มความโปร่งใสให้กับกระบวนการตรวจสอบ นอกจากนี้ยังช่วยให้สามารถอธิบายผลการตรวจสอบแก่ผู้เกี่ยวข้องหรือผู้ตรวจสอบภายนอกได้อย่างชัดเจน
BigTable
BigTable คือ ตารางข้อมูลที่ OneAudit ใช้เป็นข้อมูลตั้งต้นสำหรับการสร้างกฎและทดสอบการทำงานของกฎภายใน Rule Editor โดยรวบรวมและเชื่อมโยงข้อมูลจากหลายแหล่งมาไว้ในตารางเดียว เพื่อให้ OneAudit สามารถเข้าถึงและประมวลผลข้อมูลได้อย่างมีประสิทธิภาพ

ข้อมูลแต่ละแถวใน BigTable จะแทนธุรกรรมหนึ่งรายการ ซึ่งต้องมี Primary Key เพื่อใช้ระบุข้อมูลแต่ละแถวได้อย่างเป็นเอกลักษณ์ พร้อมรายละเอียดที่เกี่ยวข้องทั้งหมดที่จำเป็นต่อการตรวจสอบข้อมูล โดยฟิลด์ข้อมูลใน BigTable แบ่งออกเป็น 2 ประเภท ได้แก่
- Primitive Data Type คือข้อมูลพื้นฐาน เช่น Number, String หรือ Datetime
| ประเภทข้อมูล | คำอธิบาย | ตัวอย่างฟิลด์ |
|---|---|---|
| Number | ข้อมูลตัวเลข | net_amount, discount |
| String | ข้อมูลตัวอักษร หรือ ข้อความ | product_id, order_status |
| Datetime | ข้อมูลวันเวลา | order_date |
- Collective Data Type คือข้อมูลแบบกลุ่มที่ประกอบด้วยข้อมูลหลายค่า เช่น ARRAY และ Collective Field
| ประเภทข้อมูล | คำอธิบาย | ตัวอย่างฟิลด์ |
|---|---|---|
| ARRAY | รายการข้อมูล Primitive Data Type ชนิดเดียวกัน | coupons |
| Collective Field | รายการข้อมูลที่มีฟิลด์ Primitive Data Type หลายฟิลด์ อาจมองได้ว่าเป็นตารางย่อยได้ | order_items |
LookupTable
LookupTable เป็นตารางข้อมูลอ้างอิงที่ใช้สำหรับสนับสนุนการสร้างกฎและการตรวจสอบข้อมูลภายใน OneAudit ข้อมูลแต่ละแถวจะรองรับเฉพาะฟิลด์ที่เป็น Primitive Data Type เท่านั้น อีกทั้งไม่มีข้อกำหนดว่าต้องมี Primary Key เนื่องจากเป็นเพียงแหล่งข้อมูลสนับสนุน
ตัวอย่างเช่น หาก BigTable เก็บข้อมูลรายการสั่งซื้อของลูกค้า อาจมี LookupTable ที่ใช้อ้างอิง เช่น รายการสินค้า หรือ ข้อมูลลูกค้า เป็นต้น

