เอกสารนี้แปลโดย AI หากมีข้อมูลที่ไม่ถูกต้อง โปรดดูเวอร์ชันภาษาอังกฤษ
การอนุมัติคือรูปแบบของกระบวนการที่ออกแบบมาโดยเฉพาะสำหรับการเริ่มต้นและดำเนินการโดยมนุษย์ เพื่อตัดสินสถานะของข้อมูลที่เกี่ยวข้องครับ/ค่ะ โดยทั่วไปจะใช้สำหรับการจัดการกระบวนการในระบบสำนักงานอัตโนมัติ (Office Automation) หรืองานที่ต้องมีการตัดสินใจโดยมนุษย์ เช่น การสร้างและจัดการ เวิร์กโฟลว์ ด้วยตนเองสำหรับสถานการณ์ต่างๆ เช่น "คำขอลาหยุด", "การอนุมัติเบิกค่าใช้จ่าย" และ "การอนุมัติจัดซื้อวัตถุดิบ" ครับ/ค่ะ
ปลั๊กอินการอนุมัติมีประเภท เวิร์กโฟลว์ (ทริกเกอร์) เฉพาะคือ "การอนุมัติ (เหตุการณ์)" และโหนด "การอนุมัติ" ที่ออกแบบมาสำหรับกระบวนการนี้โดยเฉพาะครับ/ค่ะ เมื่อรวมกับ คอลเลกชัน ที่กำหนดเองและบล็อกที่กำหนดเองซึ่งเป็นเอกลักษณ์ของ NocoBase คุณจะสามารถสร้างและจัดการสถานการณ์การอนุมัติประเภทต่างๆ ได้อย่างรวดเร็วและยืดหยุ่นครับ/ค่ะ
เมื่อสร้าง เวิร์กโฟลว์ ให้เลือกประเภท "การอนุมัติ" เพื่อสร้าง เวิร์กโฟลว์ การอนุมัติได้เลยครับ/ค่ะ:

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

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

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

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

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

นอกเหนือจากปุ่มส่ง (Submit) โดยตรงแล้ว คุณยังสามารถเพิ่มปุ่มดำเนินการ "บันทึกฉบับร่าง" (Save as Draft) เพื่อรองรับกระบวนการจัดเก็บชั่วคราวได้อีกด้วยครับ/ค่ะ:

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

เมื่อผูก เวิร์กโฟลว์ แล้ว ผู้ใช้จะสามารถเริ่มต้นการอนุมัติได้ทันทีที่ส่งแบบฟอร์มปัจจุบันครับ/ค่ะ
ปัจจุบัน ปุ่มสำหรับเริ่มต้นการอนุมัติรองรับเฉพาะปุ่ม "ส่ง" (Submit) หรือ "บันทึก" (Save) ในแบบฟอร์มสร้างหรืออัปเดตเท่านั้นครับ/ค่ะ ไม่รองรับปุ่ม "ส่งไปยังเวิร์กโฟลว์" (Submit to workflow) ซึ่งสามารถผูกกับ "เหตุการณ์หลังการดำเนินการ" (After action event) ได้เท่านั้นครับ/ค่ะ
ศูนย์งานที่ต้องทำมีจุดเข้าใช้งานแบบรวมศูนย์ เพื่อให้ผู้ใช้สามารถดูและจัดการงานที่ต้องทำได้อย่างสะดวกครับ/ค่ะ การอนุมัติที่ผู้ใช้ปัจจุบันเริ่มต้นและงานที่รอดำเนินการสามารถเข้าถึงได้ผ่านศูนย์งานที่ต้องทำบนแถบเครื่องมือด้านบน และสามารถดูงานที่ต้องทำประเภทต่างๆ ได้ผ่านการนำทางด้านซ้ายครับ/ค่ะ





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

เมื่อเรียกใช้งานสำเร็จ เวิร์กโฟลว์ การอนุมัติสำหรับ คอลเลกชัน posts ที่เกี่ยวข้องจะถูกทริกเกอร์ครับ/ค่ะ
เนื่องจากการเรียกใช้งานจากภายนอกจำเป็นต้องอิงตามข้อมูลประจำตัวของผู้ใช้ ดังนั้นเมื่อเรียกใช้งานผ่าน HTTP API จะต้องมีการระบุข้อมูลการยืนยันตัวตนเช่นเดียวกับการส่งคำขอจากหน้าจอทั่วไปครับ/ค่ะ ซึ่งรวมถึงเฮดเดอร์ Authorization หรือพารามิเตอร์ token (โทเค็นที่ได้จากการเข้าสู่ระบบ) และเฮดเดอร์ X-Role (ชื่อบทบาทปัจจุบันของผู้ใช้) ครับ/ค่ะ
หากคุณต้องการทริกเกอร์เหตุการณ์สำหรับข้อมูลที่มีความสัมพันธ์แบบหนึ่งต่อหนึ่งในการดำเนินการนี้ (ยังไม่รองรับแบบหนึ่งต่อหลาย) คุณสามารถใช้ ! ในพารามิเตอร์เพื่อระบุข้อมูลทริกเกอร์สำหรับฟิลด์ความสัมพันธ์ได้ครับ/ค่ะ:
เมื่อเรียกใช้งานข้างต้นสำเร็จ เหตุการณ์การอนุมัติสำหรับ คอลเลกชัน categories ที่เกี่ยวข้องจะถูกทริกเกอร์ครับ/ค่ะ
เมื่อเรียกใช้งาน HTTP API เพื่อทริกเกอร์เหตุการณ์หลังการดำเนินการ คุณต้องใส่ใจกับสถานะการเปิดใช้งานของ เวิร์กโฟลว์ และการตั้งค่า คอลเลกชัน ว่าตรงกันหรือไม่ด้วยครับ/ค่ะ มิฉะนั้น การเรียกใช้งานอาจไม่สำเร็จหรือเกิดข้อผิดพลาดได้ครับ/ค่ะ
พารามิเตอร์
collectionName: ชื่อ คอลเลกชัน เป้าหมายสำหรับการเริ่มต้นการอนุมัติ (จำเป็นต้องระบุ) ครับ/ค่ะworkflowId: ID ของ เวิร์กโฟลว์ ที่ใช้ในการเริ่มต้นการอนุมัติ (จำเป็นต้องระบุ) ครับ/ค่ะdata: ฟิลด์ของเรคคอร์ด คอลเลกชัน ที่สร้างขึ้นเมื่อเริ่มต้นการอนุมัติ (จำเป็นต้องระบุ) ครับ/ค่ะstatus: สถานะของเรคคอร์ดที่สร้างขึ้นเมื่อเริ่มต้นการอนุมัติ (จำเป็นต้องระบุ) ครับ/ค่ะ ค่าที่เป็นไปได้ได้แก่:
0: ฉบับร่าง (Draft) หมายถึงการบันทึกแต่ยังไม่ส่งเพื่ออนุมัติครับ/ค่ะ1: ส่งเพื่ออนุมัติ (Submit for approval) หมายถึงผู้เริ่มต้นส่งคำขออนุมัติ เพื่อเข้าสู่กระบวนการอนุมัติครับ/ค่ะเมื่อการอนุมัติที่เริ่มต้น (หรือยกเลิก) อยู่ในสถานะฉบับร่าง คุณสามารถบันทึกหรือส่งอีกครั้งได้ผ่าน API ด้านล่างนี้ครับ/ค่ะ:
ผู้เริ่มต้นสามารถยกเลิกเรคคอร์ดที่อยู่ระหว่างการอนุมัติได้ผ่าน API ด้านล่างนี้ครับ/ค่ะ:
พารามิเตอร์
<approval id>: ID ของเรคคอร์ดการอนุมัติที่ต้องการยกเลิก (จำเป็นต้องระบุ) ครับ/ค่ะหลังจาก เวิร์กโฟลว์ การอนุมัติเข้าสู่โหนดการอนุมัติแล้ว ระบบจะสร้างงานที่ต้องทำสำหรับผู้มีอำนาจอนุมัติปัจจุบันครับ/ค่ะ ผู้มีอำนาจอนุมัติสามารถดำเนินการงานอนุมัติให้เสร็จสิ้นได้ผ่านหน้าจอการใช้งาน หรือโดยการเรียกใช้ HTTP API ครับ/ค่ะ
งานที่ต้องทำคือบันทึกการดำเนินการอนุมัติครับ/ค่ะ คุณสามารถดึงบันทึกการดำเนินการอนุมัติทั้งหมดของผู้ใช้ปัจจุบันได้ผ่าน API ด้านล่างนี้:
โดยที่ approvalRecords เป็น คอลเลกชัน ทรัพยากร คุณสามารถใช้เงื่อนไขการสืบค้นทั่วไปได้ เช่น filter, sort, pageSize และ page เป็นต้นครับ/ค่ะ
พารามิเตอร์
<record id>: ID ของเรคคอร์ดที่ต้องดำเนินการอนุมัติ (จำเป็นต้องระบุ) ครับ/ค่ะstatus: ฟิลด์สถานะของการดำเนินการอนุมัติ โดย 2 หมายถึง "อนุมัติ" และ -1 หมายถึง "ปฏิเสธ" (จำเป็นต้องระบุ) ครับ/ค่ะcomment: ข้อมูลหมายเหตุสำหรับการดำเนินการอนุมัติ (ไม่บังคับ) ครับ/ค่ะdata: การแก้ไขเรคคอร์ด คอลเลกชัน ณ โหนดการอนุมัติปัจจุบันหลังจากได้รับการอนุมัติ (ไม่บังคับ และมีผลเฉพาะเมื่ออนุมัติเท่านั้น) ครับ/ค่ะก่อนเวอร์ชัน v1.9.0 การส่งคืนจะใช้ API เดียวกันกับการ "อนุมัติ" และ "ปฏิเสธ" โดยใช้ "status": 1 เพื่อแสดงถึงการส่งคืนครับ/ค่ะ
ตั้งแต่เวอร์ชัน v1.9.0 เป็นต้นไป การส่งคืนจะมี API แยกต่างหากครับ/ค่ะ:
พารามิเตอร์
<record id>: ID ของเรคคอร์ดที่ต้องดำเนินการอนุมัติ (จำเป็นต้องระบุ) ครับ/ค่ะreturnToNodeKey: คีย์ของโหนดเป้าหมายที่จะส่งคืน (ไม่บังคับ) ครับ/ค่ะ เมื่อมีการตั้งค่าช่วงของโหนดที่สามารถส่งคืนได้ในโหนดนั้นๆ คุณสามารถใช้พารามิเตอร์นี้เพื่อระบุว่าจะส่งคืนไปยังโหนดใด หากไม่ได้ตั้งค่า พารามิเตอร์นี้ไม่จำเป็นต้องส่งค่า และระบบจะส่งคืนไปยังจุดเริ่มต้นโดยอัตโนมัติ เพื่อให้ผู้เริ่มต้นส่งใหม่ครับ/ค่ะพารามิเตอร์
<record id>: ID ของเรคคอร์ดที่ต้องดำเนินการอนุมัติ (จำเป็นต้องระบุ) ครับ/ค่ะassignee: ID ของผู้ใช้ที่จะมอบหมายให้ (จำเป็นต้องระบุ) ครับ/ค่ะพารามิเตอร์
<record id>: ID ของเรคคอร์ดที่ต้องดำเนินการอนุมัติ (จำเป็นต้องระบุ) ครับ/ค่ะassignees: รายการ ID ผู้ใช้ที่จะเพิ่มเป็นผู้ลงนาม (จำเป็นต้องระบุ) ครับ/ค่ะorder: ลำดับของผู้ลงนามที่เพิ่มเข้ามา โดย -1 หมายถึงก่อน "ฉัน" และ 1 หมายถึงหลัง "ฉัน" ครับ/ค่ะ