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

หลังจากนั้น ในหน้าจอการตั้งค่าเวิร์กโฟลว์ ให้คลิกที่ทริกเกอร์เพื่อเปิดหน้าต่างป๊อปอัปสำหรับการตั้งค่าเพิ่มเติมครับ/ค่ะ

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

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

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

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

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

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

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

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

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

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





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

เมื่อเรียกใช้งานสำเร็จ เวิร์กโฟลว์การอนุมัติสำหรับคอลเลกชัน posts ที่เกี่ยวข้องจะถูกทริกเกอร์ครับ/ค่ะ
เนื่องจากการเรียกใช้งานจากภายนอกจำเป็นต้องอิงตามข้อมูลประจำตัวของผู้ใช้ ดังนั้นเมื่อเรียกใช้งานผ่าน HTTP API จะต้องมีการระบุข้อมูลการยืนยันตัวตนเช่นเดียวกับการส่งคำขอจากหน้าจอทั่วไปครับ/ค่ะ ซึ่งรวมถึงเฮดเดอร์ Authorization หรือพารามิเตอร์ token (โทเค็นที่ได้จากการเข้าสู่ระบบ) และเฮดเดอร์ X-Role (ชื่อบทบาทปัจจุบันของผู้ใช้) ครับ/ค่ะ
หากคุณต้องการทริกเกอร์เหตุการณ์สำหรับข้อมูลที่มีความสัมพันธ์แบบหนึ่งต่อหนึ่งในการดำเนินการนี้ (ยังไม่รองรับแบบหนึ่งต่อหลาย) คุณสามารถใช้ ! ในพารามิเตอร์เพื่อระบุข้อมูลทริกเกอร์สำหรับฟิลด์ความสัมพันธ์ได้ครับ/ค่ะ:
เมื่อเรียกใช้งานข้างต้นสำเร็จ เหตุการณ์การอนุมัติสำหรับคอลเลกชัน categories ที่เกี่ยวข้องจะถูกทริกเกอร์ครับ/ค่ะ
เมื่อเรียกใช้งาน HTTP API เพื่อทริกเกอร์เหตุการณ์หลังการดำเนินการ คุณต้องใส่ใจกับสถานะการเปิดใช้งานของเวิร์กโฟลว์ และการตั้งค่าคอลเลกชันว่าตรงกันหรือไม่ด้วยครับ/ค่ะ มิฉะนั้นการเรียกใช้งานอาจไม่สำเร็จหรือเกิดข้อผิดพลาดได้ครับ/ค่ะ
พารามิเตอร์
collectionName: ชื่อคอลเลกชันเป้าหมายสำหรับการเริ่มต้นการอนุมัติ (จำเป็นต้องระบุ) ครับ/ค่ะworkflowId: ID ของเวิร์กโฟลว์ที่ใช้ในการเริ่มต้นการอนุมัติ (จำเป็นต้องระบุ) ครับ/ค่ะdata: ฟิลด์ของเรคคอร์ดคอลเลกชันที่สร้างขึ้นเมื่อเริ่มต้นการอนุมัติ (จำเป็นต้องระบุ) ครับ/ค่ะstatus: สถานะของเรคคอร์ดที่สร้างขึ้นเมื่อเริ่มต้นการอนุมัติ (จำเป็นต้องระบุ) ครับ/ค่ะ ค่าที่เป็นไปได้ได้แก่:
0: ฉบับร่าง หมายถึงการบันทึกแต่ยังไม่ส่งเพื่ออนุมัติครับ/ค่ะ2: ส่งเพื่ออนุมัติ หมายถึงผู้เริ่มต้นส่งคำขออนุมัติเพื่อเข้าสู่กระบวนการอนุมัติครับ/ค่ะเมื่อการอนุมัติที่เริ่มต้น (หรือถอนคืน) อยู่ในสถานะฉบับร่าง คุณสามารถบันทึกหรือส่งอีกครั้งได้ผ่าน 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 หมายถึงหลัง "ฉัน" ครับ/ค่ะ