Tag BPMN Engine

[BPMN] Camunda – Job Executor เผื่อเวลาไว้สักนิดก็ดี

หลังจากลองทดสอบรันเครื่องมือที่เชื่อมกับ Camunda BPMN Engine แล้วมันแปลกๆ เคสที่เคยทำได้กลับไม่ผ่านซักงั้น หรือดักการค่าแล้วไม่ได้ตามที่คิด โดยสาเหตุที่ผลสงสัยน่าจะเกี่ยวกับการทำงานของเจ้า Job Executor Job Executor คือ อะไร มันเป็นตัวจัดการทุกสิ่งที่อย่างที่เป็นงานที่ต้องทำล่วงหน้า หรือมีกำหนดการชัดเจนครับ ซึ่งถ้าเราทำแบบจำลองที่มีการตั้งเวลาไว้ ในแง่ของตัว BPMN Engine มันจะเอาเงื่อนไขเหล่านั้นมาตั้งกำหนดการตามเวลาไว้ โดยเมื่อถึงเวลาที่กำหนดเจ้า Job Executor เข้ามากวาดงานไปทำต่อครับ ถ้าลองดูในส่วน Cockpit ของ Camunda เมื่อ Start Process และทำไปถึงจุดที่ได้มีเงื่อนไขที่เกินกับเวลาไว้ ตัว Camunda ไปสร้าง Job ไว้ครับ ถ้าดูจากแบบจำลองที่ผมแนบพบว่า NextDay…

[BPMN] Deploy Process ผ่าน REST-API

จริงๆ ใน Blog ตอนก่อน ช่วงที่ผมได้เล่นกับตัว Camunda BPMN ช่วงแรกจะพบว่าการ Deploy Process นั้นยุ่งยากครับ ต้องทำเป็นไฟล์ .war แล้วนำไปวางที่ Tomcat ครับ แต่จริงๆ มันมีวิธีการที่ง่ายกว่านั้น คือ การใช้ REST-API ครับ โดยมีข้อกำหนดของ Web Service ดังนี้ครับ REST-API : Deployment สำหรับตอนนี้ เราจะมาลองกันครับ โดยใช้ Tools ที่มีชื่อว่า POST-MAN สำหรับการทดสอบครับ โดยใน Blog ตอนนี้ ผมทดสอบ Create…

[BPMN] มา Test BPMN ที่สร้างจาก Camunda กันครับ

หลังจากยุ่งกับงานประจำนานเลย ตอนนี้เริ่มกลับมาทำงาน Thesis แล้วครับ ถ้าใครสร้าง BPMN ด้วย Camunda ไปแล้วนั่น หาจะทดสอบมีได้หลายวิธีครับ เช่น Deploy Process เข้าไปที่ตัว BPMN Engine แล้วกด Test เลย Deploy Process แล้วใช้ REST API ของ BPMN Engine เพื่อส่งค่าเข้าไป แต่ถ้ามาดูที่ตัว Camunda มีตัวช่วยสำหรับ Test เหมือนกันครับ โดยมีตัวช่วย ดังนี้ Test Project Template + Camunda BPM…

[TESTING] มาทำให้ JSON-Server Support Request แบบ Chunked ครับ

หลังจากติดปัญหาเรื่อง BPMN Engine  แล้วพบว่า Service Task ถ้าทำเป็น Web Service แล้วข้อมูล Request ในส่วนของ Body มันหายไปครับ หลังจากไล่ไปไล่มา โดยดูจาก Forum ของ Camunda Payload is empty when making HTTP POST request with HttpConnector How to specify POST payload for Rest Tasks ? Disable sending…

[BPMN] Service Task with REST-API (OTHER) Example

หลังจากได้ลองไปแล้วกับ REST API ผ่าน Service Task บน BPMN ไป 2 เรื่อง [BPMN] Service Task with REST-API (GET) Example [BPMN] Service Task with REST-API (PATCH) Example คราวนี้ก็มาลองแบบที่เหลือบ้างว่าอันไหน Work หรือไม่ Work ครับ โดยผมได้สร้าง BPMN ที่มีกระบวนการทำงาน ดังรูปครับ ถ้าสังเกตุในแบบจำลองที่ผมทำ มันมีสัญลักษณ์ที่ถูกเขียนกำกับว่า JSON-Server ตัวนั้น คือ DataStore…

[BPMN] Service Task with REST-API (PATCH) Example

หลังจาก Blog ตอนก่อน ผมได้ลอง Service Task เชื่อมกับ Web Service ผ่านวิธีการ GET เพื่อที่ดึงข้อมูลมาแสดงผลครับ คราวนี้หลังจาก GET ข้อมูลไปแล้วคราวนี้ เราลองมาทำการแก้ไขข้อมูลครับ ซึ่งการแก้ไขข้อมูลบางส่วน อันนี้ทาง Web Service (REST API) เค้ามีวิธีการที่เรียกว่า PATCH ครับ ส่วนจะทำอย่างไรนั้นมาลุยกันเลยครับ เตรียมตัวครับ Camunda BPMN Engine – Blog ผมมีเขียนนะ อิอิ JSON-Server – ตัว Mock API ครับ…

[BPMN] Service Task with REST-API (Get) Example

หลังจากงมๆมานานพอสมควรแล้วกับการใช้งาน Service Task กับ Web Service กับ Camunda BPMN Engine ครับ โดยสิ่งที่ผมใช้ คือ ตัว Camunda Connector ที่ช่วยให้เราสามารถ Config Web Service ได้ง่าย ไม่ต้องส่งงานให้ Delegate Code อย่าง BPMN Engine ของค่ายอื่นๆครับ สำหรับ NOTE: สำหรับเรื่อง Service Task ตัว Spec ของ BPMN ไม่ได้ระบุใน Spec ชัดเจน…

[BPMN] ลองคิดตัวอย่างของ Completion Condition กัน

พอดีช่วงนี้ได้ลองเล่น BPMN แล้ว ปัญหาที่สำคัญของ Spec ตัว BPMN เอง คือ ตัวอย่างน้อย และไม่ครอบคลุมตามคุณสมบัติที่ได้ระบุไว้ใน Spec ครับ อย่างที่ผมโคตรงง ตอนนี้ คือ Attribute ของ Multi-Instance ของ Task ครับ ลองมาคิดตัวอย่างกันดีกว่าครับ Task “Monitor Shipment” – Completion Condition คือ สินค้าถึงจุดหมายปลายทางแล้ว Task “Approval TOR” – Completion Condition คือ คณะกรรมการ 2 ใน…

[BPMN] มาลองใช้ Timer Start Event กันครับ

จาก 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 นี้จะถูก…

[BPMN] เมื่อ Timer Start Event ทำให้เกิดปัญหา duedate is null

หลังจากทำ Thesis มาเรื่อยๆ ผมได้มาลองใช้ Timer Start Event ของแบบจำลอง BPMN พอจะ Deploy เท่านั้นแหละ ? ERROR org.camunda.bpm.engine.context – ENGINE-16004 Exception while closing command context: duedate is null org.camunda.bpm.engine.exception.NullValueException:duedate is null at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[na:1.8.0_152] at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) ~[na:1.8.0_152] at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[na:1.8.0_152] at java.lang.reflect.Constructor.newInstance(Constructor.java:423)…