หลังจากได้ลอง BPMN Engine ตัว Activiti ไป ช่วงมกราคม และลองตัว jBPM ไป แต่ไม่ค่อย Work เท่าไหร่ คราวนี้มาถึงคิวของ Camunda บ้างแล้วครับ
Camunda BPMN Engine คือ อะไร
- เป็น BPMN Engine ที่แตกสาย (Fork มาจาก Project ของ Activiti เพื่อเน้นการพัฒนาส่วนของ Engine เอาไปใช้พัฒนา Application ได้ง่ายขึ้น และเพิ่มมาตรฐานใหม่อย่าง DMN และ CMMN ทางที่ OMG (Object Management Group) ได้ประกาศขึ้นมา และนำมาใช้เพื่อลดความซับซ้อนของ BPMN ครับ
ขั้นตอนการพัฒนา BPMN Application บน Camunda
- สร้างแบบจำลอง BPMN ก่อนครับ โดยทาง Camunda ได้เตรียมตัว Camunda Modeler ไว้ให้ครับ
- ลงมือทำแบบจำลองครับ อันนี้เป็นแบบจำลองของ https://fundamentals-of-bpm.org ที่ถูกอ้างอิงใน Paper หลายๆอันครับ
- นำแบบจำลองมาสร้างเป็นเว็บแอปพลิเคชันต่อครับ โดยผมใช้ Eclipse เพื่อบิ้วไฟล์ .war สำหรับไป Deploy ครับ
- ถ้าใครไม่รู้โครงสร้างของ Project ไม่เป็นได้ครับ ใช้ Maven Project Templates (Archetypes) ได้เลยครับ
- จากนั้นวางไฟล์ .BPMN ไว้ที่ Folder Resource ครับ
- ถ้ามีทำ Custom UI ก็วางไฟล์ UI ไว้ใน Folder WebApp ครับ - จากนั้นใช้คำสั่ง maven -install เพื่อบิ้วตัว .war ขึ้นมาครับ
ติดตั้งแบบจำลอง
- download Camunda BPMN Engine มาจากนั้นแตกไฟล์ Zip start-camunda.bat จากนั้นเรียกไฟล์ (Windows) เพื่อ Start Server ซึ่งเมื่อ Start เรียบร้อยแล้ว มันพาไปหน้าจอ Welcome ซึ่งมี 3 Module หลังที่ต้องสนใจครับ
- Cockpit - เอาไว้ Monitoring จัดการกับ Process
- Task - เอาไว้สำหรับให้ User แต่ละ Role เข้ามาใช้งาน เพื่อเดินกระบวนการ ทางหน้าที่ของแต่ละ User
- Admin - เอาไว้จัดการสิทธิ์ทั้งหลาย - ถ้าเข้ามาใน Cockpit ด้วย username demo password demo พบว่ามี sample process deploy รอไว้แล้วครับ ต่่อไปเรา Deploy Process อันใหม่ที่ทำ เพิ่มครับ
- นำไฟล์ .war ที่ได้ เข้าไปวางในโพลเดอร์
[[SERVER-PATH]]\camunda-bpm-enigne\server\apache-tomcat-x.x.xx\webapps
จากนั้นรอตัว Tomcat มัน Deploy Process ครับ โดยมีข้อความแจ้งผล ดังรูป
- ลองไปดูใน Cockpit มี Process ที่ Deploy ทั้งหมด 3 ตัวครับ
ทดสอบใช้งานครับ
- Start Process ให้ทำงานก่อนครับ โดยเข้าไปที่ Camunda-Task จากนั้น Start Process
- เลือก Process ที่ได้เพิ่ง Deploy ไปเลยครับ
- ระบบขึ้น Form ให้กรอก ดังรูป
- สำหรับการทดสอบมี 6 กรณีทดสอบ
- กรณี Happy Flow
- กรณี ผู้ใช้กรอกข้อมูลไม่ครบ จนกลับมาที่ Task "Update Loan Application"
- กรณี เจ้าหน้าที่ฝ่ายสินเชื่อ(Loan Officer) ตรวจที่ Task "Assess eligibility" แล้วคุณสมบัติไม่ตรง
- กรณี ผู้ใช้กรอกข้อมูลไม่ครบ จนกลับมาที่ Task "Update Loan Application" แล้วค้างที่ Task นั้น 5 วัน ระบบต้อง Reject ทิ้ง
- กรณี เจ้าหน้าที่ฝ่ายสินเชื่อ(Loan Officer) ตรวจที่ Task "Verify repayment agreement" แล้วค้างที่ Task นั้น 14 วัน ระบบต้อง Reject ทิ้ง
Note
- ถ้าใช้ Form ของ Camunda ระวังพวก Date Type "Date" ที่ต้องเป็น ISO 8601 ไม่งั้นมัน Render Form ไม่ขึ้น
Reference
Discover more from naiwaen@DebuggingSoft
Subscribe to get the latest posts sent to your email.