[BPMN] ลองสร้าง Process โดยใช้ Activiti Designer

หลังจากที่ได้ลงทุกอย่างพร้อมหมดแล้ว ทั้ง Activiti Framework, Eclipse Activiti Designer แล้ว คราวนี้มาลองใช้ Activiti Designer ลองสร้าง Process แบบง่ายๆขึ้นมาครับ จากนั้นน่าจะเป็น Blog ตอนถัดไปสำหรับการทำ Unit Test ของ Process ครับ เอาหละมาเริ่มกันเลยครับ

Step 1 : เตรียมตัว

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 ใส่อะไรบ้าง

    • [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 นี้ให้พนักงานกรอกงบประมาณที่ต้องการ สำหรับการตั้งค่าอื่นๆ ให้ดูจากรูปด้านล่างเลยครับ

    This slideshow requires JavaScript.

  • Exclusive Gateway และ Sequence Flow ทั้ง 2 ได้แก่
    • Sequence Flow ชื่อว่า budgetAmountMoreThen1K โดยการผ่าน Flow นี้ไปได้ ต้องผ่านเงื่อนไขดังนี้ ${budgetAmount > 1000.00} โดยการกำหนดค่าสามารถดูได้จากรูปครับ

      This slideshow requires JavaScript.

    • Sequence Flow ชื่อว่า  budgetAmountLessOrEqual1K โดยการผ่าน Flow นี้ไปได้ ต้องผ่านเงื่อนไขดังนี้ ${budgetAmount <= 1000.00} โดยการกำหนดค่าสามารถดูได้จากรูปครับ

      This slideshow requires JavaScript.

  • User Task ชื่อว่า MangerReviewApproved หน้าที่ของ Task นี้ ให้หัวหน้า หรือผู้จัดการเข้ามาตัดสินใจ ว่าอนุมัติคำร้อง หรือไม่ โดยการกำหนดค่าสามารถดูได้จากรูปครับ

    This slideshow requires JavaScript.

  • แต่ User Task  MangerReviewApproved ประกอบไปด้วย Sequence Flow  2 เส้นทาง ได้แก่
    • Sequence Flow ชื่อว่า  ApprovedBudget โดยการผ่าน Flow นี้ไปได้ ต้องผ่านเงื่อนไขดังนี้ ${Approved == true} โดยการกำหนดค่าสามารถดูได้จากรูปครับ

      This slideshow requires JavaScript.

    • Sequence Flow ชื่อว่า  RejectBudget โดยการผ่าน Flow นี้ไปได้ ต้องผ่านเงื่อนไขดังนี้ ${Approved == false} โดยการกำหนดค่าสามารถดูได้จากรูปครับ

      This slideshow requires JavaScript.

  • User Task ชื่อว่า AccountantAck หน้าที่ของ Task นี้ บอกว่าฝ่ายการเงิน / บัญชีรับทราบเรื่องแล้ว

หลังจากมี Diagramแล้ว จริงๆ มันเรียกได้อีกชื่อว่า Process Definition ได้นะ สำหรับขั้นตอนต่อไปทำการทดสอบ โดยการทำ Unit Test ครับ ซึ่งผมเขียนอธิบายใน Blog ตอนถัดไปครับ

The following two tabs change content below.

Adminping

Application Specialist (Finance Software )
มนุษย์เงินเดือนคนนึง ที่อยากแชร์ความรู้ และประสบการณ์การทำงานรวมถึงขายโปรแกรม เล็กๆน้อยๆ เพื่อสานต่อความฝันตั้งแต่เด็ก ^__^ ศรัทธาใน Java แต่ทำ .Net อยู่ตอนนี้ 555

Latest posts by Adminping (see all)