จาก Blog ตอนที่แล้ว หลังจากไปตบตีกับ Timer Start Event ที่ไม่สามารถ Deploy ได้มา 5 วัรเต็มๆ หลังจากแก้ปัญหาได้แล้ว คราวนี้มาลองดูตัวอย่างกันครับ หลายคนที่อ่าน Spec ของ BPMN เอาน่าจะงงกันครับ
มาดูกระบวนการแบบง่ายๆกันก่อนครับ
Note: กระบวนการที่ไม่ได้เป็นตัวอย่างของกระบวนการทางธุรกิจจริงๆนะครับ แค่เพียงทดสอบ Start Timer Event โดยมีส่วนประกอบ ดังนี้
- Start Timer Event - จุดนี้พระเอกเลยครับ เพราะมีการกำหนดตาม Spec ของ BPMN ครับ ตาม Date Pattern R4/2018-06-03T00:00/PT5M Task นี้จะถูก Execute ครั้งแรก ในวันที่ 2018-06-03 เวลาเที่ยงคืน และทำงานไปต่ออีก 4 ครั้ง และทิ้งช่วงครั้งละ 5 นาทีครับ
- ถ้าดูใน XML ในอยู่ในส่วนของ Timer <bpmn:timerEventDefinition> และ <bpmn:timeCycle> ซึ่งมีการกำหนดรูปแบบของวันที่ตาม ISO 8601 ครับ
<bpmn:startEvent id="StartEvent_1"> <bpmn:outgoing>SequenceFlow_18slmhg</bpmn:outgoing> <bpmn:timerEventDefinition> <bpmn:timeCycle xsi:type="bpmn:tFormalExpression">R4/2018-06-03T00:00/PT5M</bpmn:timeCycle> </bpmn:timerEventDefinition> </bpmn:startEvent>
- Script Task "Collect Order Data" - อันนี้ไม่มีอะไรมากครับ แต่ Print "Task Execute" ตามรูปครับ
- User Task "Accept Data" - สำหรับ Task นี้จริงๆ ผมแค่อยากทดสอบว่า Task ถูก Execute จริงไหม โดยให้ Task ถูก Assign ที่ user mary และต้องทำ Task ให้เสร็จ (property duedate)ภายใน 2018-07-30T12:00:00 ครับ โดยมี Config ตามรูป
- End Event - จบการทำงานครับ
รอที่ Job ทำงานครับ
ต้องรอเวลา 2018-06-03 เวลาเที่ยงคืน ถ้าขี้เกียจก็เปลี่ยนเวลาเครื่องได้เลยครับ (ถ้าบน Windows ที่ยังไม่ Activate จะไม่สามารถย้อนเวลาได้ครับ)
ดูผลลัพธ์
ดูที Console ของ Tomcat ครับ มีการ Execute 5 ครั้ง ครั้งแรกตอน Task Start ครับ และอีก 4 ครั้งตาม Config ครับ (เสียดายที่ลืมเขียนเวลาครับ)
มาดูที่ Task ของ Mary ครับ มีงาน 5 งานมารอให้ mary สะสางครับ
- เวลา 00:00
- เวลา 00:05
- เวลา 00:10
- เวลา 00:15
- เวลา 00:20
จบไปแล้วกับ Blog ตอนนี้ครับ ต่อไปถ้าว่าง ผมคงลองเขียน Timer Start Event ตามกระบวนการธุรกิจจริงๆครับ ^__^
Discover more from naiwaen@DebuggingSoft
Subscribe to get the latest posts sent to your email.