วัตถุประสงค์
เพื่อเรียนรู้การใช้ If-Else Node ในการกำหนดเงื่อนไขแบบผสม (Compound Condition) เพื่อตรวจสอบความถูกต้องของการใช้ E-Wallet ตามเงื่อนไขที่กำหนด
ตัวอย่างสถานการณ์
ร้าน SportMart Online Store ต้องการตรวจสอบความถูกต้องของการชำระเงินด้วย E-Wallet โดยอนุญาตให้ใช้ได้เฉพาะกรณีที่ยอดชำระไม่เกิน 10,000 บาท หากเกินจะถือว่าเป็นรายการผิดปกติ
อินพุต (Input)
ข้อมูลธุรกรรมการสั่งซื้อสินค้าที่เกี่ยวข้อง ได้แก่:
order_idpayment_methodnet_amount
เงื่อนไข (Condition)
- ลูกค้าสามารถใช้ E-Wallet ได้เมื่อยอดชำระไม่เกิน 10,000 บาท
2.3 กฎ (Rule Logic)
สามารถเขียนเงื่อนไขในการตรวจสอบข้อมูลในรูปแบบของ pseudo code ได้ดังนี้
# Example Code for a transaction id 'ORD001'
IF payment_method = "E-Wallet" AND net_amount > 10000 THEN
create Flag
code = AUDIT_TRANSACTION
status = SUSPECT
message = "E-Wallet payment for order id 'ORD001' exceeds limit (net_amount > 10,000 BHT)"
ELSE
create Flag
code = AUDIT_TRANSACTION
status = PASS
message = "Payment method for order id 'ORD001' is valid"
ขั้นตอนการสร้างกฎ (Step-by-Step)
1. สร้าง workspace
- Log-in เข้าสู่เว็บไซต์ OneAudit Rule Editor Playground ด้วยบัญชี Google
- สร้าง Workspace โดยกำหนดชื่อและคำอธิบายดังนี้
Name: my_tutorial
Description: ตัวอย่างการสร้าง workspace
2. เลือก BigTable จาก Registry
เลือกข้อมูล BigTable จาก Registry โดยใช้ ecommerce เป็น input dataset ระบบจะโหลด schema ของข้อมูลธุรกรรมมาให้ใช้งานใน Rule Editor

3. สร้าง Flag
กำหนดรูปแบบของผลลัพธ์ (Flag) ที่จะใช้ใน Audit Rule
- สร้าง Result Status: SUSPECT = 0 และ PASS = 1
- สร้าง Flag: Flag name = AUDIT_TRANSACTION และ add Result Status ‘SUSPECT’ และ ‘PASS’ เข้าไปใน Flag

4. สร้างกฎ (Audit Rule)
4.1 สร้างกฎใหม่
สร้างกฎใหม่ภายใต้ Workspace โดยตั้งชื่อกฎเป็น e_wallet_payment และใส่คำอธิบายกฎ

4.2 ออกแบบกฎ (Design Rule)
ออกแบบกฎโดยใช้โหนด BigTable, If-Else และ Flag จากนั้นลากโหนดแต่ละตัวมาวางและเชื่อมต่อกันตามภาพตัวอย่าง

- หมายเหตุ: โหนด If-Else และ Flag มีสัญลักษณ์แจ้งเตือน หมายถึงการตั้งค่าโหนดยังไม่สมบูรณ์
4.3 กำหนดเงื่อนไขตรวจสอบข้อมูล (Define Condition)
- Double click ที่โหนด If-Else เพื่อกำหนดเงื่อนไขตรวจสอบข้อมูล
- กดปุ่ม Add Primitive และเพิ่มเงื่อนไขดังนี้
payment_method = "E-Wallet"และnet_amount > 10000

4.4 กำหนดผลการตรวจสอบ (Define outcomes)
กำหนดผลลัพธ์ของแต่ละกรณี:
- กรณีเข้าเงื่อนไขเป็น True → สร้าง Flag =
SUSPECT

- กรณีไม่เข้าเงื่อนไขเป็น False → สร้าง Flag =
PASS

5. ทดสอบกฎ
5.1 รันกฎ (Execute Rule)
รัน Rule Graph ด้วยข้อมูลตัวอย่าง ระบบจะประมวลผลตามลำดับของ Rule ที่ออกแบบไว้

5.2 ตรวจสอบผลลัพธ์
ตรวจสอบผลลัพธ์ที่ได้
เส้นทางการทำงานของ rule (execution path)ถูกต้องตามกฎค่า Flag ที่ถูกสร้างแสดงถูกต้องตามกฎข้อความ (message)แสดงถูกต้องตามข้อความที่กำหนดใน Flag

6. แบบฝึกหัด (Exercise)
ทดลองเปลี่ยนเงื่อนไข โดยลูกค้าสามารถใช้ E-Wallet ได้เมื่อยอดชำระไม่เกิน 15,000 บาท
เฉลย (Solution)
มีเฉลยให้ หากโจทย์มีความยากเกินไป
