หลังจากที่ได้ลงทุกอย่างพร้อมหมดแล้ว ทั้ง Activiti Framework, Eclipse Activiti Designer แล้ว คราวนี้มาลองใช้ Activiti Designer ลองสร้าง Process แบบง่ายๆขึ้นมาครับ จากนั้นน่าจะเป็น Blog ตอนถัดไปสำหรับการทำ Unit Test ของ Process ครับ เอาหละมาเริ่มกันเลยครับ
Step 1 : เตรียมตัว
- คิดตั้ง Eclipse Activiti Designer หรือใช้ Kick Start บน Activiti App ก็ได้ แต่ใน Blog นี้ของใช้ตัว Eclipse Activiti Designer
- ติดตั้ง Activiti Framework รวมถึงย้ายไปใช้ MySQL หรือ Database เจ้าอื่นๆแล้ว
Step 2 : Process ที่สร้าง BPMN
- โดยเริ่มจากพนักงานทำเรื่องเสนอของเบิกงบประมาณ
- ถ้างบที่เบิกน้อยกว่า หรือเท่ากับ 1,000 บาท - สามารถติดต่อนักบัญชีได้เลย
- ถ้างบที่เบิกมากกว่า 1,000 บาท - ต้องให้ผู้จัดการตรวจสอบ และอนุมัติก่อนครับ
- ถ้าผู้จัดการอนุมัติ - ส่งเรื่องต่อให้นักบัญชีได้เลย
- ถ้าไม่ผู้จัดการอนุมัติ - ส่งเรื่องกลับไปให้พนักงาน
Step 3 : สร้าง Activiti Project กัน
- สร้าง Project โดยใช้ Activiti Designer หลังจากเปิดโปรแกรมขึ้นมาให้สร้าง Activiti Project โดยเปิดเมนู File >> New >> Project
- ตั้งชื่อ Project แล้วกด Finish
- มาดูโครงสร้าง Project กันดีกว่าครับ
- จากรูปมาเจาะโครงสร้าง Project ดีกว่า ว่าแต่ละ Folder ใส่อะไรบ้าง
<Project Name> |-src |-main | |-java [1] | |-resources [2] | |-diagrams |-test |-java [3] |-resources [4]
- [1] Java - เก็บ Java Class ที่เกียวข้องกับแผนภาพ BPMN
- [2] resources/diagrama - เก็บแผนภาพ BPMN
- [3] Test - เก็บ Unit Test ของ BPMN
- [4] resources - เก็บ Resource ที่ใช้สำหรับ Test
Step 4 : สร้าง BPMN Process กัน
- คลิกขวาที่โพลเดอร์ diagrams เลือกเมนู New >> Other
- เลือก Activiti Diagram แล้วกด Next ดังรูป
- ตั้งชื่อ Process จากนั้นกด Finish
- ตอนนี้มี BPMN Process ว่างๆขึ้นมา 1 แล้วครับ
Step 5 : สร้าง BPMM Process ตามโจทย์ที่กำหนดไว้ใน Step 2
- ขั้นแรกไปดูที่ Patette จากนั้นลองลาก Component ต่างๆมาสร้าง Diagram ดังรูป
- คลิกที่พื้นที่ว่างๆ กำหนด Procee ID และ Name ดังรูป
จากนี้ไปผมเจาะ เฉพาะจุดที่มี Config ที่สำคัญ และทำให้ตัว BPMN มันสามารถ Execute ได้จริงครับ
- User Task ชื่อว่า Employee Request Budget หน้าที่ของ Task นี้ให้พนักงานกรอกงบประมาณที่ต้องการ สำหรับการตั้งค่าอื่นๆ ให้ดูจากรูปด้านล่างเลยครับ
- Exclusive Gateway และ Sequence Flow ทั้ง 2 ได้แก่
- Sequence Flow ชื่อว่า budgetAmountMoreThen1K โดยการผ่าน Flow นี้ไปได้ ต้องผ่านเงื่อนไขดังนี้ ${budgetAmount > 1000.00} โดยการกำหนดค่าสามารถดูได้จากรูปครับ
- Sequence Flow ชื่อว่า budgetAmountLessOrEqual1K โดยการผ่าน Flow นี้ไปได้ ต้องผ่านเงื่อนไขดังนี้ ${budgetAmount <= 1000.00} โดยการกำหนดค่าสามารถดูได้จากรูปครับ
- Sequence Flow ชื่อว่า budgetAmountMoreThen1K โดยการผ่าน Flow นี้ไปได้ ต้องผ่านเงื่อนไขดังนี้ ${budgetAmount > 1000.00} โดยการกำหนดค่าสามารถดูได้จากรูปครับ
- User Task ชื่อว่า MangerReviewApproved หน้าที่ของ Task นี้ ให้หัวหน้า หรือผู้จัดการเข้ามาตัดสินใจ ว่าอนุมัติคำร้อง หรือไม่ โดยการกำหนดค่าสามารถดูได้จากรูปครับ
- แต่ User Task MangerReviewApproved ประกอบไปด้วย Sequence Flow 2 เส้นทาง ได้แก่
- Sequence Flow ชื่อว่า ApprovedBudget โดยการผ่าน Flow นี้ไปได้ ต้องผ่านเงื่อนไขดังนี้ ${Approved == true} โดยการกำหนดค่าสามารถดูได้จากรูปครับ
- Sequence Flow ชื่อว่า RejectBudget โดยการผ่าน Flow นี้ไปได้ ต้องผ่านเงื่อนไขดังนี้ ${Approved == false} โดยการกำหนดค่าสามารถดูได้จากรูปครับ
- Sequence Flow ชื่อว่า ApprovedBudget โดยการผ่าน Flow นี้ไปได้ ต้องผ่านเงื่อนไขดังนี้ ${Approved == true} โดยการกำหนดค่าสามารถดูได้จากรูปครับ
- User Task ชื่อว่า AccountantAck หน้าที่ของ Task นี้ บอกว่าฝ่ายการเงิน / บัญชีรับทราบเรื่องแล้ว
หลังจากมี Diagramแล้ว จริงๆ มันเรียกได้อีกชื่อว่า Process Definition ได้นะ สำหรับขั้นตอนต่อไปทำการทดสอบ โดยการทำ Unit Test ครับ ซึ่งผมเขียนอธิบายใน Blog ตอนถัดไปครับ
Discover more from naiwaen@DebuggingSoft
Subscribe to get the latest posts sent to your email.