เอกสารนี้แปลโดย AI หากมีข้อมูลที่ไม่ถูกต้อง โปรดดูเวอร์ชันภาษาอังกฤษ
หลังจากที่เวิร์กโฟลว์ถูกทริกเกอร์ ระบบจะสร้างแผนการทำงานที่เกี่ยวข้องขึ้นมา เพื่อติดตามกระบวนการทำงานของภารกิจนั้นๆ แผนการทำงานแต่ละรายการจะมีสถานะที่บ่งบอกถึงสถานะการทำงานปัจจุบัน ซึ่งสามารถดูได้ทั้งในรายการและรายละเอียดของประวัติการทำงาน:

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

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

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