Category Software Engineering

[BPMN] Camunda TimeDate กับ TimeZone

จากปัญหาใน Blog ตอนก่อนครับที่สงสัยทำไมเวลามันไม่ขยับตรงตามที่คิดไว้ครับ หลังจากลองหามาว่าทำไมพอไปทดสอบแบบจำลองบน BPMN Engine พบว่ามันไม่ได้ทำงานตามที่ตั้งใจไว้ มาดูที่โจทย์ที่ผมคิดไว้ดีกว่า (แอบเอาภาพเก่ามาใช้นะครับ 555) มาดูที่ Time Boundary กันครับตามโจทย์ที่ผมตั้ง เวลาวันที่ 23-JAN-2020 เวลา 00:01 ถ้างานที่ค้างจากกิจกรรม First Line Support งานถูกส่งต่อ Second Line Support ซึ่งถ้าแปลงเป็น ISO8601 จะได้ 2020-01-23T00:00:01 พอลองรันจริงปรากฏว่า เมื่อถึงเวลามันไม่ทำงานครับ 55555 หลังจากหาลองหาดูใน Forum มี 2 กระทู้ที่มีความเป็นไปได้ครับ boundaryEvent not…

[BPMN] Camunda ทำไม 1 วันมันถึงบวกไปแค่ 17 ชั่วโมง

มันเริ่มจากผมทดสอบ Process ซึ่งมันจะตรวจสอบว่า ถ้ามีงาน Incident แจ้งเข้ามาเนี่ย ฝั่ง Customer Service จะเข้างานในส่วนของ First Line Support เพื่อมาแก้ปัญหา แต่ถ้างานค้างไป 1 วันมัน ตัวงานจะส่งต่อให้ Second Line Support เพื่อช่วยเหลือครับ โดยภาพรวมของกระบวนการเป็นไปดังรูปครับ ลองดูส่วนที่ผมวงๆสีแดงจริงๆมันต้องดู 1 วัน แต่มันดันเป็น 8 ชั่วโมงซะได้ ปัญหา คือ อะไรหละ อันนี้ต้องย้อนกลับไปดู Code ของตอนที่หาวันถัดไปครับ แบบแรกใช้ TimeZone UTC (มันไปคิดแบบ UTC…

[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] Access Camunda H2 Database

หลังจากว่างเว้นไปกับ Blog ของ Camunda BPMN Engine ไปพักใหญ่ๆ คราวนี้มีเหตุต้องไปไล่ดูแล้วว่าตัว Camunda BPMN มันเก็บข้อมูลอะไรบ้าง เพื่อเอาไปใช้กับ Thesis ครับ โดยการเข้าถึงตัว H2 Local Database ของ Camunda มีวิธีการ ดังนี้ครับ เมื่อ Start ตัว Camunda เรียบร้อยแล้วให้เข้าไปที่ url http://localhost:8080/h2/h2 Login เข้า Database โดยใช้ข้อมูล ดังนี้ JDBC URL: jdbc:h2:./camunda-h2-dbs/process-engine Username: sa Password:…

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

หลังจากยุ่งกับงานประจำนานเลย ตอนนี้เริ่มกลับมาทำงาน Thesis แล้วครับ ถ้าใครสร้าง BPMN ด้วย Camunda ไปแล้วนั่น หาจะทดสอบมีได้หลายวิธีครับ เช่น แต่ถ้ามาดูที่ตัว Camunda มีตัวช่วยสำหรับ Test เหมือนกันครับ โดยมีตัวช่วย ดังนี้ สร้าง BPMN ก่อนครับ มาลุย Code กันดีกว่าครับ สำหรับ Tools ที่ผมใช้ IntelliJ กับ Camunda Test Project Template ครับ เมื่อ Generate Project มาแล้วจะพบตัว InmemoryH2Test กับ…

[BPMN] แก้ปัญหา Stack Size is too large บน Camunda BPMN

หลังจากลองตัว Camunda  BPMN Engine มาสักพัก แล้วจะทดสอบอะไร อยากรู้ว่ามันมีค่าเท่าไหร่ ปกติเราทำพวก Instrument Test เพื่อแสดงให้เห็นว่ากิจกรรมที่สนใจ โดยผมเขียนคำสั่งประมาณนี้ เมื่อนำไป Run กับ BPMN Engine พบว่า Stack Size is too large ครับ ปัญหา คือ อะไร ทดสอบอีกครั้งครับ

[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…

[TESTING] มา Debug Request ที่ส่งเข้าไปใน JSON-SERVER ครับ

หลังจากที่ได้ลง JSON-Server ไปแล้วใน Blog ตอนก่อนครับ หลังจากที่ลอง Service Task บน BPMN แล้วพบว่ามันไม่ส่งข้อมูลไป คราวนี้ผมเลยต้องมาไล่ดู Request ที่ส่งไปที่ JSON-Server มันส่งไปจริง หรือป่าว และส่งอะไรไปบ้างครับ โดยสิ่งที่มีก่อนครับ Node.js Editor อะไรก็ได้ครับ เพราะ เราเขียน JavaScript เรียกใช้งาน JSON-Server ครอบอีกทีนึงก่อนครับ สำหรับขั้นตอนมาลุยไปพร้อมๆกันเลยครับฃ สร้าง Project สำหรับ Node ด้วยคำสั่ง npm init -y  ซึ่งได้ผลลัพธ์เป็น package.json  ที่ทำหน้าที่เก็บข้อมูลของ Project และ Package…

[TESTING] Mock Data สำหรับ API Test ด้วย JSON-Server กันครับ

หลังจากทำ BPMN ที่เป็น Servicer Task เสร็จและ โดยลองใช้ Mock REST-API จาก  เพื่อ POC (Proof of concept) แล้วนั้น สิ่งถัดมาที่ผมทำ คือ ต้องมาลองสร้างข้อมูลให้มัน Dynamic มากก่านี้ครับ ซึ่งผมได้เจอ Open Source ตัวนึงที่น่าสนใจมากครับ แท่นแท๊นนน มัน คือ JSON Server ครับ เป็น Tools ที่เกิดมาเพื่อทำ Mock REST-API โดยแท้เลยครับ มันเลยเป็นที่มาของ Blog ตอนนี้ด้วยครับ…

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

หลังจากได้ลองไปแล้วกับ REST API ผ่าน Service Task บน BPMN ไป 2 เรื่อง คราวนี้ก็มาลองแบบที่เหลือบ้างว่าอันไหน Work หรือไม่ Work ครับ โดยผมได้สร้าง BPMN ที่มีกระบวนการทำงาน ดังรูปครับ โดยแต่ละ Service Task มีการเรียกใช้ REST-API Method ที่แตกต่างกันครับ ได้แก่ ทดสอบ Run ครับ โดยผมใช้ Mock API ของ JSON-Server อีกเช่นเคยครับ สำหรับ Blog นี้เขียนเสร็จ…