logologo
เริ่มต้น
คู่มือ
การพัฒนา
ปลั๊กอิน
API
English
简体中文
日本語
한국어
Deutsch
Français
Español
Português
Русский
Italiano
Türkçe
Українська
Tiếng Việt
Bahasa Indonesia
ไทย
Polski
Nederlands
Čeština
العربية
עברית
हिन्दी
Svenska
เริ่มต้น
คู่มือ
การพัฒนา
ปลั๊กอิน
API
logologo
เวิร์กโฟลว์
ภาพรวม
เริ่มต้นใช้งาน

ทริกเกอร์

ภาพรวม
เหตุการณ์ตารางข้อมูล
งานที่กำหนดเวลา
เหตุการณ์ก่อนการดำเนินการ
เหตุการณ์หลังการดำเนินการ
เหตุการณ์การดำเนินการที่กำหนดเอง
การอนุมัติ
Webhook

โหนด

ภาพรวม

AI

LLM

การควบคุมโฟลว์

เงื่อนไข
แยกสาขาหลายเงื่อนไข
วนซ้ำ
ตัวแปร
แยกสาขาแบบขนาน
เรียกใช้เวิร์กโฟลว์
ผลลัพธ์ของโฟลว์
การแมปตัวแปร JSON
การหน่วงเวลา
สิ้นสุด

การคำนวณ

การคำนวณ
การคำนวณวันที่
การคำนวณ JSON

การดำเนินการข้อมูล

เพิ่มข้อมูล
อัปเดตข้อมูล
ค้นหาข้อมูล
ลบข้อมูล
การดำเนินการ SQL

การดำเนินการด้วยตนเอง

การดำเนินการด้วยตนเอง
การอนุมัติ
ส่งสำเนา (CC)

ขยายประเภท

คำขอ HTTP
สคริปต์ JavaScript
การแจ้งเตือน
ส่งอีเมล
การตอบกลับ
ข้อความตอบกลับ
ตัวแปร
บันทึกการดำเนินการ
การจัดการเวอร์ชัน
ตัวเลือกขั้นสูง

การพัฒนาส่วนขยาย

ภาพรวม
ขยายประเภททริกเกอร์
ขยายประเภทโหนด
การอ้างอิง API
Previous Pageเหตุการณ์ก่อนการดำเนินการ
Next Pageเหตุการณ์การดำเนินการที่กำหนดเอง
TIP

เอกสารนี้แปลโดย AI หากมีข้อมูลที่ไม่ถูกต้อง โปรดดูเวอร์ชันภาษาอังกฤษ

#เหตุการณ์หลังการดำเนินการ

This feature is provided by the plugin «เวิร์กโฟลว์: เหตุการณ์หลังการดำเนินการ»

#บทนำ

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

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

ในระดับการนำไปใช้งาน เนื่องจากเหตุการณ์หลังการดำเนินการถูกจัดการที่เลเยอร์มิดเดิลแวร์ (middleware layer) ของ Koa การเรียกใช้ HTTP API ไปยัง NocoBase ก็สามารถเรียกใช้งานเหตุการณ์หลังการดำเนินการที่กำหนดไว้ได้เช่นกันครับ/ค่ะ

#การติดตั้ง

ปลั๊กอิน นี้เป็นส่วนหนึ่งของระบบอยู่แล้ว จึงไม่จำเป็นต้องติดตั้งเพิ่มเติมครับ/ค่ะ

#การกำหนดค่าทริกเกอร์

#การสร้าง เวิร์กโฟลว์

เมื่อสร้าง เวิร์กโฟลว์ ให้เลือกประเภทเป็น "เหตุการณ์หลังการดำเนินการ" ครับ/ค่ะ

สร้างเวิร์กโฟลว์_ทริกเกอร์เหตุการณ์หลังการดำเนินการ

#โหมดการทำงาน

สำหรับเหตุการณ์หลังการดำเนินการ เมื่อสร้าง คุณยังสามารถเลือกโหมดการทำงานเป็น "ซิงโครนัส" (Synchronous) หรือ "อะซิงโครนัส" (Asynchronous) ได้ครับ/ค่ะ

สร้างเวิร์กโฟลว์_เลือกซิงโครนัสหรืออะซิงโครนัส

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

#การกำหนดค่า คอลเลกชัน

เข้าสู่หน้าจอออกแบบ เวิร์กโฟลว์ คลิกที่ทริกเกอร์เพื่อเปิดหน้าต่างกำหนดค่า ขั้นแรกคุณต้องเลือก คอลเลกชัน ที่ต้องการผูกครับ/ค่ะ

การกำหนดค่าเวิร์กโฟลว์_เลือกคอลเลกชัน

#การเลือกโหมดทริกเกอร์

จากนั้นเลือกโหมดทริกเกอร์ ซึ่งมีสองแบบคือ โหมดเฉพาะส่วน (Local) และโหมดทั่วทั้งระบบ (Global) ครับ/ค่ะ

การกำหนดค่าเวิร์กโฟลว์_เลือกโหมดทริกเกอร์

โดยมีรายละเอียดดังนี้ครับ/ค่ะ:

  • โหมดเฉพาะส่วน (Local): จะถูกเรียกใช้งานเฉพาะบนปุ่มดำเนินการที่ผูกกับ เวิร์กโฟลว์ นี้เท่านั้นครับ/ค่ะ การคลิกปุ่มที่ไม่ได้ผูกกับ เวิร์กโฟลว์ นี้จะไม่เรียกใช้งาน คุณสามารถตัดสินใจว่าจะผูก เวิร์กโฟลว์ นี้หรือไม่ โดยพิจารณาจากว่าฟอร์มที่มีวัตถุประสงค์ต่างกันควรเรียกใช้งาน เวิร์กโฟลว์ เดียวกันหรือไม่
  • โหมดทั่วทั้งระบบ (Global): จะถูกเรียกใช้งานบนปุ่มดำเนินการทั้งหมดที่กำหนดค่าไว้สำหรับ คอลเลกชัน นั้นครับ/ค่ะ โดยไม่คำนึงว่าจะมาจากฟอร์มใด และไม่จำเป็นต้องผูก เวิร์กโฟลว์ ที่เกี่ยวข้อง

ในโหมดเฉพาะส่วน ปุ่มดำเนินการที่รองรับการผูกในปัจจุบันมีดังนี้ครับ/ค่ะ:

  • ปุ่ม "ส่ง" (Submit) และ "บันทึก" (Save) ในฟอร์มเพิ่มข้อมูล
  • ปุ่ม "ส่ง" (Submit) และ "บันทึก" (Save) ในฟอร์มอัปเดตข้อมูล
  • ปุ่ม "อัปเดตข้อมูล" ในแถวข้อมูล (เช่น ตาราง, รายการ, คัมบัง เป็นต้น)

#การเลือกประเภทการดำเนินการ

หากคุณเลือกโหมดทั่วทั้งระบบ คุณจะต้องเลือกประเภทการดำเนินการด้วยครับ/ค่ะ ปัจจุบันรองรับ "การดำเนินการสร้างข้อมูล" (Create data action) และ "การดำเนินการอัปเดตข้อมูล" (Update data action) การดำเนินการทั้งสองจะเรียกใช้งาน เวิร์กโฟลว์ หลังจากดำเนินการสำเร็จครับ/ค่ะ

#การเลือกข้อมูลความสัมพันธ์ที่โหลดล่วงหน้า

หากคุณต้องการใช้ข้อมูลที่เกี่ยวข้องของข้อมูลที่ถูกทริกเกอร์ใน เวิร์กโฟลว์ ลำดับถัดไป คุณสามารถเลือกฟิลด์ความสัมพันธ์ที่ต้องการโหลดล่วงหน้าได้ครับ/ค่ะ

การกำหนดค่าเวิร์กโฟลว์_โหลดความสัมพันธ์ล่วงหน้า

หลังจากถูกทริกเกอร์ คุณสามารถใช้ข้อมูลที่เกี่ยวข้องเหล่านี้ได้โดยตรงใน เวิร์กโฟลว์ ครับ/ค่ะ

#การกำหนดค่าการดำเนินการ

สำหรับการดำเนินการในโหมดทริกเกอร์เฉพาะส่วน หลังจากกำหนดค่า เวิร์กโฟลว์ เสร็จสิ้น คุณจะต้องกลับไปยังหน้าจอผู้ใช้ และผูก เวิร์กโฟลว์ เข้ากับปุ่มดำเนินการของฟอร์มในบล็อกข้อมูลที่เกี่ยวข้องครับ/ค่ะ

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

เหตุการณ์หลังการดำเนินการ_ปุ่มส่ง

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

เหตุการณ์หลังการดำเนินการ_การกำหนดค่าผูกเวิร์กโฟลว์_การเลือกบริบท

เหตุการณ์หลังการดำเนินการ_การกำหนดค่าผูกเวิร์กโฟลว์_การเลือกเวิร์กโฟลว์

ข้อควรทราบ

เวิร์กโฟลว์ จะต้องถูกเปิดใช้งานก่อน จึงจะสามารถเลือกได้ในหน้าจอข้างต้นครับ/ค่ะ

#ตัวอย่าง

ในส่วนนี้จะสาธิตโดยใช้การดำเนินการเพิ่มข้อมูลครับ/ค่ะ

สมมติสถานการณ์ "การขอเบิกค่าใช้จ่าย" ครับ/ค่ะ เราต้องการให้มีการตรวจสอบยอดเงินอัตโนมัติ และตรวจสอบด้วยตนเองสำหรับยอดที่เกินวงเงิน หลังจากพนักงานส่งคำขอเบิกค่าใช้จ่าย โดยเฉพาะคำขอที่ผ่านการตรวจสอบเท่านั้นที่จะได้รับการอนุมัติ และส่งต่อไปยังฝ่ายการเงินเพื่อดำเนินการต่อไป

ขั้นแรก เราสามารถสร้าง คอลเลกชัน "ค่าใช้จ่าย" ที่มีฟิลด์ดังต่อไปนี้ครับ/ค่ะ:

  • ชื่อโครงการ: ข้อความบรรทัดเดียว
  • ผู้ขอเบิก: หลายต่อหนึ่ง (ผู้ใช้)
  • จำนวนเงิน: ตัวเลข
  • สถานะ: เลือกรายการเดียว ("อนุมัติแล้ว", "ดำเนินการเสร็จสิ้น")

จากนั้น สร้าง เวิร์กโฟลว์ ประเภท "เหตุการณ์หลังการดำเนินการ" และกำหนดค่าโมเดล คอลเลกชัน ในทริกเกอร์ให้เป็น คอลเลกชัน "ค่าใช้จ่าย" ครับ/ค่ะ

ตัวอย่าง_การกำหนดค่าทริกเกอร์_เลือกคอลเลกชัน

หลังจากตั้งค่า เวิร์กโฟลว์ ให้เป็นสถานะเปิดใช้งาน เราจะกลับมาตั้งค่าโหนดการประมวลผลเฉพาะของ เวิร์กโฟลว์ ในภายหลังครับ/ค่ะ

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

ตัวอย่าง_การกำหนดค่าปุ่มฟอร์ม_ผูกเวิร์กโฟลว์

หลังจากกำหนดค่าฟอร์มเสร็จสิ้น ให้กลับไปที่การจัดเรียงตรรกะของ เวิร์กโฟลว์ ครับ/ค่ะ ตัวอย่างเช่น หากจำนวนเงินมากกว่า 500 บาท เราต้องการให้ผู้ดูแลระบบตรวจสอบด้วยตนเอง มิฉะนั้นจะอนุมัติโดยตรง หลังจากอนุมัติแล้ว จะมีการสร้างบันทึกการเบิกค่าใช้จ่าย และส่งต่อไปยังฝ่ายการเงินเพื่อดำเนินการต่อไป (ส่วนนี้จะละไว้)

ตัวอย่าง_ขั้นตอนการประมวลผล

หากละเว้นการดำเนินการของฝ่ายการเงินในภายหลัง การกำหนดค่ากระบวนการขอเบิกค่าใช้จ่ายก็เสร็จสมบูรณ์แล้วครับ/ค่ะ เมื่อพนักงานกรอกและส่งคำขอเบิกค่าใช้จ่าย เวิร์กโฟลว์ ที่เกี่ยวข้องจะถูกเรียกใช้งาน หากยอดค่าใช้จ่ายน้อยกว่า 500 บาท ระบบจะสร้างบันทึกโดยอัตโนมัติและรอการดำเนินการเพิ่มเติมจากฝ่ายการเงิน มิฉะนั้น จะถูกตรวจสอบโดยหัวหน้างาน และหลังจากอนุมัติแล้ว ก็จะสร้างบันทึกและส่งมอบให้ฝ่ายการเงินดำเนินการเช่นกันครับ/ค่ะ

เวิร์กโฟลว์ ในตัวอย่างนี้ยังสามารถกำหนดค่าบนปุ่ม "ส่ง" ทั่วไปได้ครับ/ค่ะ คุณสามารถตัดสินใจได้ว่าจะสร้างบันทึกก่อนแล้วจึงดำเนินการตามขั้นตอนต่อไปหรือไม่ โดยพิจารณาจากสถานการณ์ทางธุรกิจที่เฉพาะเจาะจงครับ/ค่ะ

#การเรียกใช้งานจากภายนอก

การเรียกใช้งานเหตุการณ์หลังการดำเนินการไม่ได้จำกัดอยู่แค่การดำเนินการบนหน้าจอผู้ใช้เท่านั้นครับ/ค่ะ แต่ยังสามารถถูกเรียกใช้งานผ่านการเรียกใช้ HTTP API ได้ด้วย

ข้อควรทราบ

เมื่อเรียกใช้งานเหตุการณ์หลังการดำเนินการผ่านการเรียกใช้ HTTP API คุณต้องใส่ใจกับสถานะการเปิดใช้งานของ เวิร์กโฟลว์ และว่าการกำหนดค่า คอลเลกชัน ตรงกันหรือไม่ด้วยครับ/ค่ะ มิฉะนั้น การเรียกใช้งานอาจไม่สำเร็จ หรืออาจเกิดข้อผิดพลาดขึ้นได้

สำหรับ เวิร์กโฟลว์ ที่ผูกไว้กับปุ่มดำเนินการแบบเฉพาะส่วน คุณสามารถเรียกใช้งานได้ดังนี้ครับ/ค่ะ (ตัวอย่างเช่น ปุ่มสร้างของ คอลเลกชัน posts)

curl -X POST -H 'Authorization: Bearer <your token>' -H 'X-Role: <roleName>' -d \
  '{
    "title": "Hello, world!",
    "content": "This is a test post."
  }'
  "http://localhost:3000/api/posts:create?triggerWorkflows=workflowKey"

โดยที่พารามิเตอร์ URL triggerWorkflows คือคีย์ของ เวิร์กโฟลว์ ครับ/ค่ะ หากมีหลาย เวิร์กโฟลว์ ให้คั่นด้วยเครื่องหมายจุลภาค (comma) คีย์นี้สามารถดูได้โดยการเลื่อนเมาส์ไปวางบนชื่อ เวิร์กโฟลว์ ที่ด้านบนของหน้าจอออกแบบ เวิร์กโฟลว์ ครับ/ค่ะ

เวิร์กโฟลว์_คีย์_วิธีการดู

หลังจากเรียกใช้งานข้างต้นสำเร็จ เหตุการณ์หลังการดำเนินการของ คอลเลกชัน posts ที่เกี่ยวข้องจะถูกเรียกใช้งานครับ/ค่ะ

ข้อควรทราบ

เนื่องจากการเรียกใช้งานจากภายนอกก็ต้องอ้างอิงจากตัวตนของผู้ใช้ด้วยครับ/ค่ะ ดังนั้นเมื่อเรียกใช้งานผ่าน HTTP API เช่นเดียวกับคำขอที่ส่งจากหน้าจอปกติ จะต้องระบุข้อมูลการยืนยันตัวตน ซึ่งรวมถึงเฮดเดอร์คำขอ Authorization หรือพารามิเตอร์ token (โทเค็นที่ได้รับจากการเข้าสู่ระบบ) และเฮดเดอร์คำขอ X-Role (ชื่อบทบาทปัจจุบันของผู้ใช้) ครับ/ค่ะ

หากคุณต้องการเรียกใช้งานเหตุการณ์สำหรับข้อมูลความสัมพันธ์แบบหนึ่งต่อหนึ่ง (to-one relationship) ในการดำเนินการนี้ (ยังไม่รองรับแบบหนึ่งต่อหลาย) คุณสามารถใช้เครื่องหมาย ! ในพารามิเตอร์เพื่อระบุข้อมูลทริกเกอร์ของฟิลด์ความสัมพันธ์ได้ครับ/ค่ะ

curl -X POST -H 'Authorization: Bearer <your token>' -H 'X-Role: <roleName>' -d \
  '{
    "title": "Hello, world!",
    "content": "This is a test post.",
    "category": {
      "title": "Test category"
    }
  }'
  "http://localhost:3000/api/posts:create?triggerWorkflows=workflowKey!category"

หลังจากเรียกใช้งานข้างต้นสำเร็จ เหตุการณ์หลังการดำเนินการของ คอลเลกชัน categories ที่เกี่ยวข้องจะถูกเรียกใช้งานครับ/ค่ะ

ข้อควรทราบ

หากเหตุการณ์ถูกกำหนดค่าเป็นโหมดทั่วทั้งระบบ คุณไม่จำเป็นต้องใช้พารามิเตอร์ URL triggerWorkflows เพื่อระบุ เวิร์กโฟลว์ ที่เกี่ยวข้องครับ/ค่ะ เพียงแค่เรียกใช้การดำเนินการของ คอลเลกชัน ที่เกี่ยวข้องก็จะเรียกใช้งานได้ทันที

#คำถามที่พบบ่อย

#ความแตกต่างจากเหตุการณ์ก่อนการดำเนินการ

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

ดังที่แสดงในภาพด้านล่างครับ/ค่ะ:

ลำดับการดำเนินการ

#ความแตกต่างจากเหตุการณ์ คอลเลกชัน

เหตุการณ์หลังการดำเนินการและเหตุการณ์ คอลเลกชัน มีความคล้ายคลึงกันในแง่ที่ว่าทั้งคู่เป็น เวิร์กโฟลว์ ที่ถูกเรียกใช้งานหลังจากข้อมูลมีการเปลี่ยนแปลงครับ/ค่ะ อย่างไรก็ตาม ระดับการนำไปใช้งานนั้นแตกต่างกัน เหตุการณ์หลังการดำเนินการจะทำงานในระดับ API ในขณะที่เหตุการณ์ คอลเลกชัน จะทำงานกับการเปลี่ยนแปลงข้อมูลใน คอลเลกชัน โดยตรงครับ/ค่ะ

เหตุการณ์ คอลเลกชัน จะอยู่ใกล้กับเลเยอร์พื้นฐานของระบบมากกว่าครับ/ค่ะ ในบางกรณี การเปลี่ยนแปลงข้อมูลที่เกิดจากเหตุการณ์หนึ่งอาจเรียกใช้งานเหตุการณ์อื่น ทำให้เกิดปฏิกิริยาลูกโซ่ได้ โดยเฉพาะอย่างยิ่งเมื่อข้อมูลใน คอลเลกชัน ที่เกี่ยวข้องบางส่วนมีการเปลี่ยนแปลงในระหว่างการดำเนินการของ คอลเลกชัน ปัจจุบัน เหตุการณ์ที่เกี่ยวข้องกับ คอลเลกชัน ที่ผูกไว้ก็สามารถถูกเรียกใช้งานได้เช่นกันครับ/ค่ะ

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

ความแตกต่างอีกประการหนึ่งคือ เหตุการณ์หลังการดำเนินการสามารถผูกแบบเฉพาะส่วนกับปุ่มฟอร์มที่เจาะจงได้ครับ/ค่ะ หากมีหลายฟอร์ม การส่งฟอร์มบางส่วนสามารถเรียกใช้งานเหตุการณ์นี้ได้ ในขณะที่ส่วนอื่นไม่เรียกใช้งาน ในทางกลับกัน เหตุการณ์ คอลเลกชัน จะทำงานกับการเปลี่ยนแปลงข้อมูลใน คอลเลกชัน ทั้งหมด และไม่สามารถผูกแบบเฉพาะส่วนได้ครับ/ค่ะ