โฟลว์เหตุการณ์
บทนำ
ถ้าคุณต้องการให้ระบบทำงานบางอย่างโดยอัตโนมัติเมื่อมีการเปลี่ยนแปลงในฟอร์ม คุณสามารถใช้ Event flow (โฟลว์เหตุการณ์) เพื่อทำสิ่งนี้ได้ครับ/ค่ะ นอกจากฟอร์มแล้ว โฟลว์เหตุการณ์ยังสามารถใช้กับหน้าเพจ, บล็อก, ปุ่ม และฟิลด์ต่างๆ เพื่อตั้งค่าการทำงานที่กำหนดเองได้ด้วยครับ/ค่ะ
วิธีใช้งาน
เราจะมาดูตัวอย่างง่ายๆ เพื่ออธิบายวิธีการตั้งค่าโฟลว์เหตุการณ์กันครับ/ค่ะ ในตัวอย่างนี้ เราจะสร้างการเชื่อมโยงระหว่างสองตาราง โดยเมื่อคุณคลิกที่แถวใดแถวหนึ่งในตารางด้านซ้าย ระบบจะทำการกรองข้อมูลในตารางด้านขวาโดยอัตโนมัติครับ/ค่ะ

ขั้นตอนการตั้งค่ามีดังนี้ครับ/ค่ะ
- คลิกไอคอน "สายฟ้า" ที่มุมขวาบนของบล็อกตารางด้านซ้าย เพื่อเปิดหน้าจอตั้งค่าโฟลว์เหตุการณ์ครับ/ค่ะ

- คลิก "เพิ่มโฟลว์เหตุการณ์ (Add event flow)" จากนั้นเลือก "คลิกแถว (Row click)" เป็น "เหตุการณ์ทริกเกอร์ (Trigger event)" ซึ่งหมายความว่าโฟลว์จะทำงานเมื่อมีการคลิกที่แถวของตารางครับ/ค่ะ

- "เงื่อนไขทริกเกอร์ (Trigger condition)" ใช้สำหรับตั้งค่าเงื่อนไขครับ/ค่ะ โฟลว์เหตุการณ์จะทำงานก็ต่อเมื่อตรงตามเงื่อนไขที่กำหนดเท่านั้น ในกรณีนี้ เราไม่จำเป็นต้องตั้งค่าเงื่อนไขใดๆ ดังนั้นโฟลว์จะทำงานทุกครั้งที่มีการคลิกที่แถวครับ/ค่ะ

- เลื่อนเมาส์ไปที่ "เพิ่มขั้นตอน (Add step)" เพื่อเพิ่มขั้นตอนการทำงานครับ/ค่ะ เราจะเลือก "ตั้งค่าขอบเขตข้อมูล (Set data scope)" เพื่อกำหนดขอบเขตข้อมูลสำหรับตารางด้านขวาครับ/ค่ะ

- คัดลอก UID ของตารางด้านขวา แล้ววางลงในช่อง "UID บล็อกเป้าหมาย (Target block UID)" ครับ/ค่ะ จากนั้นหน้าจอตั้งค่าเงื่อนไขจะปรากฏขึ้นทันทีด้านล่าง ซึ่งคุณสามารถกำหนดขอบเขตข้อมูลสำหรับตารางด้านขวาได้ที่นี่ครับ/ค่ะ

- มาตั้งค่าเงื่อนไขกันครับ/ค่ะ ตามที่แสดงในภาพด้านล่าง:

- หลังจากตั้งค่าขอบเขตข้อมูลแล้ว คุณจะต้องรีเฟรชบล็อกเพื่อให้แสดงผลการกรองครับ/ค่ะ ถัดไป เราจะมาตั้งค่าการรีเฟรชบล็อกตารางด้านขวา โดยเพิ่มขั้นตอน "รีเฟรชบล็อกเป้าหมาย (Refresh target blocks)" แล้วใส่ UID ของตารางด้านขวาลงไปครับ/ค่ะ

- สุดท้าย คลิกปุ่มบันทึกที่มุมขวาล่าง การตั้งค่าก็เป็นอันเสร็จสมบูรณ์ครับ/ค่ะ
ประเภทของเหตุการณ์
ก่อนเรนเดอร์ (Before render)
เป็นเหตุการณ์ทั่วไปที่สามารถใช้ได้กับหน้าเพจ, บล็อก, ปุ่ม หรือฟิลด์ต่างๆ ครับ/ค่ะ ในเหตุการณ์นี้ คุณสามารถทำงานเริ่มต้น (initialization) บางอย่างได้ เช่น การตั้งค่าขอบเขตข้อมูลที่แตกต่างกันภายใต้เงื่อนไขที่ต่างกันครับ/ค่ะ
คลิกแถว (Row click)
เป็นเหตุการณ์เฉพาะสำหรับบล็อกตารางครับ/ค่ะ จะทำงานเมื่อมีการคลิกที่แถวของตาราง เมื่อทำงานแล้ว ระบบจะเพิ่ม "เรคคอร์ดแถวที่ถูกคลิก (Clicked row record)" เข้าไปในบริบท ซึ่งสามารถนำไปใช้เป็นตัวแปรในเงื่อนไขและขั้นตอนต่างๆ ได้ครับ/ค่ะ
เป็นเหตุการณ์เฉพาะสำหรับบล็อกฟอร์มครับ/ค่ะ จะทำงานเมื่อค่าของฟิลด์ในฟอร์มมีการเปลี่ยนแปลง คุณสามารถเข้าถึงค่าของฟอร์มได้ผ่านตัวแปร "ฟอร์มปัจจุบัน (Current form)" ในเงื่อนไขและขั้นตอนต่างๆ ครับ/ค่ะ
คลิก (Click)
เป็นเหตุการณ์เฉพาะสำหรับปุ่มครับ/ค่ะ จะทำงานเมื่อมีการคลิกที่ปุ่ม
ประเภทของขั้นตอน
ตัวแปรที่กำหนดเอง (Custom variable)
ใช้สำหรับสร้างตัวแปรที่กำหนดเอง เพื่อนำไปใช้ในบริบทต่างๆ ครับ/ค่ะ
ขอบเขต
ตัวแปรที่คุณกำหนดเองจะมีขอบเขตการใช้งานครับ/ค่ะ ตัวอย่างเช่น ตัวแปรที่ถูกกำหนดในโฟลว์เหตุการณ์ของบล็อก จะสามารถใช้ได้เฉพาะภายในบล็อกนั้นเท่านั้น หากคุณต้องการให้ตัวแปรนั้นสามารถใช้ได้กับทุกบล็อกในหน้าปัจจุบัน คุณจะต้องตั้งค่าในโฟลว์เหตุการณ์ของหน้านั้นๆ ครับ/ค่ะ
ใช้ค่าจากบล็อกฟอร์มใดๆ เป็นตัวแปรครับ/ค่ะ การตั้งค่ามีดังนี้:

- Variable title: ชื่อตัวแปร
- Variable identifier: ตัวระบุตัวแปร
- Form UID: UID ของฟอร์ม
ตัวแปรอื่นๆ
จะมีการรองรับตัวแปรประเภทอื่นๆ เพิ่มเติมในอนาคตครับ/ค่ะ โปรดติดตาม
ตั้งค่าขอบเขตข้อมูล (Set data scope)
ตั้งค่าขอบเขตข้อมูลสำหรับบล็อกเป้าหมายครับ/ค่ะ การตั้งค่ามีดังนี้:

- Target block UID: UID ของบล็อกเป้าหมาย
- Condition: เงื่อนไขการกรอง
รีเฟรชบล็อกเป้าหมาย (Refresh target blocks)
รีเฟรชบล็อกเป้าหมาย โดยสามารถตั้งค่าได้หลายบล็อกครับ/ค่ะ การตั้งค่ามีดังนี้:

- Target block UID: UID ของบล็อกเป้าหมาย
ไปยัง URL (Navigate to URL)
นำทางไปยัง URL ที่ต้องการครับ/ค่ะ การตั้งค่ามีดังนี้:

- URL: URL เป้าหมาย รองรับการใช้ตัวแปร
- Search parameters: พารามิเตอร์การค้นหาใน URL
- Open in new window: หากเลือกช่องนี้ จะเปิด URL ในหน้าต่างเบราว์เซอร์ใหม่เมื่อมีการนำทาง ครับ/ค่ะ
แสดงข้อความ (Show message)
แสดงข้อความตอบรับการทำงานทั่วทั้งระบบครับ/ค่ะ
ใช้เมื่อใด
- ใช้สำหรับแสดงข้อความตอบรับ เช่น สำเร็จ, คำเตือน และข้อผิดพลาด ครับ/ค่ะ
- จะแสดงอยู่ตรงกลางด้านบนและหายไปเองโดยอัตโนมัติ ซึ่งเป็นวิธีการแจ้งเตือนแบบเบาๆ ที่ไม่ขัดจังหวะการทำงานของผู้ใช้ครับ/ค่ะ
การตั้งค่า

- Message type: ประเภทข้อความ
- Message content: เนื้อหาข้อความ
- Duration: ระยะเวลาที่แสดง (หน่วยเป็นวินาที)
แสดงการแจ้งเตือน (Show notification)
แสดงข้อความแจ้งเตือนทั่วทั้งระบบครับ/ค่ะ
ใช้เมื่อใด
แสดงข้อความแจ้งเตือนที่มุมทั้งสี่ของระบบครับ/ค่ะ มักใช้ในสถานการณ์ต่อไปนี้:
- เนื้อหาการแจ้งเตือนที่ค่อนข้างซับซ้อน ครับ/ค่ะ
- การแจ้งเตือนที่มีการโต้ตอบ เพื่อให้ผู้ใช้ดำเนินการในขั้นตอนต่อไป ครับ/ค่ะ
- การแจ้งเตือนที่ระบบส่งให้โดยอัตโนมัติ ครับ/ค่ะ
การตั้งค่า

- Notification type: ประเภทการแจ้งเตือน
- Notification title: หัวข้อการแจ้งเตือน
- Notification description: รายละเอียดการแจ้งเตือน
- Placement: ตำแหน่งที่แสดง โดยมีตัวเลือกคือ: ซ้ายบน, ขวาบน, ซ้ายล่าง, ขวาล่าง ครับ/ค่ะ
รัน JavaScript (Execute JavaScript)

สำหรับรันโค้ด JavaScript ครับ/ค่ะ