การ Start Workflow ใน Alfresco ปกติจะเป็นการ Start Workflow แบบ Manual นะครับ เช่น เราอาจจะทำการ Start Workflow เกี่ยวกับการ Clear ค่าใช้จ่าย ไปให้กับแผนกบัญชี เป็นต้น นะครับ แต่มีหลายๆ กรณี ที่อาจจะต้องมีการ Start Workflow แบบ Auto นะครับ เช่น Workflow ที่เกี่ยวข้องกับการจัดซื้อ เช่น ผู้ใช้อาจจะทำการ Request การขอซื้อ (PR) จากระบบ ERP จากนั้นให้ทำการ Auto Start Workflow เพื่อให้ Manager ทำการ Approve เป็นต้น ดังนั้น เราจะมาเขียน โปรแกรม เพื่อให้ Alfresco สามารถทำการ Auto Start Workflow กันนะครับ
ตอนที่เราลง Alfresco มาใหม่ๆ นั้น Alfresco จะทำ Sample Code มาให้ดูเป็นตัวอย่างด้วยนะครับ ซึ่งการทำ Auto Start ก็เช่นกัน Alfresco ก็ได้เตรียมมาให้เช่นกันนะครับ โดยให้ทำการ Login เข้าไปที่ Alfresco นะครับ จากนั้นคลิกที่ Repository -> Data Dictionary -> Script
จากนั้นไปที่ start-pooled-review-workflow.js ให้ทำการ คลิกที่ Inline Edit นะครับ เพื่อดูตัวอย่างการเขียนโปรแกรม JavaScript (Run ฝั่ง Server นะครับ) เพื่อทำการ Auto Start Workflow โดยในตัวอย่างจะเป็นการ Start Workflow ชื่อ pooled-review-workflow
มาดูรายละเอียดของ Code กันนะครับ
a. บรรทัดที่ 3 เป็นการสร้าง object ของ Workflow Service ขึ้นมานะครับ
b. บรรทัดที่ 4 เป็นการบอกว่าจะทำการ Start Workflow Template ชื่ออะไรครับ
c. บรรทัดที่ 5 เป็นการใส่ Title หรือ Subject ของ Workflow นะครับ
d. บรรทัดที่ 6 เป็นการบอกว่าใครจะต้องเป็นคน Approve ใน Task นี้นะครับ
e. บรรทัดที่ 7-9 เป็นการกำหนด Workflow DueDate นะครับ
f. บรรทัดที่ 10 เป็นการบอกให้ Alfresco ทำการ Start Workflow ครับ
มาลองดูกันนะครับว่า Alfresco จะทำการ Auto Start Workflow ได้อย่างไร
เริ่มต้นจากทำการสร้าง Folder ขึ้นมานะครับ จากนั้น เลือก Manage Rules จากนั้นเลือก New Rule
ทำการใส่ Rule ใน Folder นะครับ ตามรูปด้านล่าง จะหมายถึง ถ้ามี Content เข้ามาใน Folder ให้ทำการ Auto Start Workflow เลยครับ เมื่อ Config เสร็จแล้วให้คลิกที่ปุ่ม Create นะครับ
ทดสอบโดยการ Upload เอกสารเข้าไปที่ Folder ที่เราได้ทำการ Config ไว้นะครับ
จะสังเกตุว่า Alfresco ได้ทำการ Start Workflow ให้แล้วครับ โดยคลิกที่ My Task ที่ My Dash board ของเรานะครับ