[DB2] Run Script แบบ Check ก่อน ถ้าผ่านไปต่อ

IBM DB2

จริงๆ Blog นี้เกิดจากการได้เป็นผู้โชคดีไปช่วยน้องในทีม Run Script สำหรับ UAT ครับ โดยที่น้องคนนั้นก็ไม่ค่อยมั่นใจกับ Script ครับ เมื่อทดสอบที่ Site ลูกค้าจริงแล้วพบว่า อ้าวเฮ้ยยยย ไม่เหมือนที่คุยกันไว้นี่นาที่บอกว่า Migrate ครบ แต่อ้าวข้อมูลหายไปอ้าวเฮ้ย อย่ากลืนน้ำลายตัวเองดีกว่าเสียเวลาร้องขออะไรสุดท้ายข้อมูลก็ต้องกลับคืน (มันของลูกค้า ไม่ได้ข้อมูลครบคงหัวขาด) ทำไมถึงเป็นเช่นนั้นหละ ทำไม Script ที่มีการซักซ้อมมาอย่างดีถึงเกิดปัญหาตอนใช้จริง มาดูโครงสร้าง Script กันดีกว่าครับ โดยได้ทำเป็น Batch File ชุดนึงครับ (ไฟล์ migrate.bat ) ข้างในมีเนื้อหาประมาณนี้ครับ แต่พอลองทดสอบทำงานจริง อ้าวววววววว Schema ไม่ตรงกัน พบ Script แรกมัน Error แต่ที่มันจะต้องหยุดกลับต้องทำงานต่อไป DROP ข้อมูลทิ้งเลย ซุนวูกล่าวไว้ว่า รู้เขารู้เรา รบร้อยครั้งชนะร้อยครัั้ง แต่นี่รู้ไม่ครบ แล้วต้องทำอย่างไร กลศึกมีไว้พลิกแพลงครับ เราก็เล่นแบบ Safe สิ Execute Script ดู Error ถ้าไม่มีแล้วทำงานต่อ ดู Return Code ครับ ค่าที่ db2 return กลับมา มีค่าที่เป็นไปได้ครับ มีดังนี้ CODE DESCRIPTION 0 DB2® command or SQL statement executed successfully 1 SELECT or FETCH statement returned no rows 2 DB2 command or SQL statement warning 4 DB2 command or…

[MSWORD] เพิ่ม Cross-Reference เอาไว้อ้างอิงรูปภาพ หรือตารางในตารางครับ

หลายครั้งเรากำลังเขียนรายงานอยู่ แล้วมีข้อมูล Pattern แบบนี้ หลังจาก Insert Caption เพื่อใส่คำว่าภาพที่ 6(ที่ถูก Highlight สีเหลือง) แล้วตรงคำว่า ดังภาพที่ 6(กรอบสีแดง) ต้องพิมพ์เอง หรือป่าว คำตอบไม่ต้องพิมพ์เองครับ ใน Microsoft Word มี Feature นี้อยู่แล้วครับ ชื่อว่า Cross-Reference ครับ โดยมีขั้นตอน ดังนี้ Reference

[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 the Chunked request from camunda ตัว Code มาไล่แกะไปจาก Stack Trace หรือลอง Debug Request ที่ส่งเข้าไปใน JSON-SERVER ครับ ในที่สุดก็พบปัญหาแล้วครับ เนื่องจากตัว BPMN Engine ที่ผมเลือกได้ใช้ Tomcat HTTP 1.1 connector ซึ่งมีการเปิด transfer encoding ให้เป็น Mode = “Chunked” ซึ่งมีการส่งข้อมูลเป็นชิ้นๆครับ และที่สำคัญ ถ้าทำ Request แบบนี้มันจะไม่ระบุขนาดของ Request ไปด้วยครับ ซึ่งนี่แหละที่ทำให้ JSON-Server มันมอง Request-Body ว่าไม่ได้ส่งอะไรมาครับ งงอยู่ตั้ง 2 สัปดาห์ครับ ถ้าจะไปแก้เป็นตัว HTTP 1.0 มันก็ไม่ควรครับ เพราะจะทำให้ตัว Camunda BPMN Engine ทำงานผิดปรกตืในส่วนอื่นได้ครับ หลังจากค้นๆดูแล้ว ตัว JSON-Server มันยอมให้เราทำ Middleware…

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

หลังจากที่ได้ลง JSON-Server ไปแล้วใน Blog ตอนก่อนครับ หลังจากที่ลอง Service Task บน BPMN แล้วพบว่ามันไม่ส่งข้อมูลไป คราวนี้ผมเลยต้องมาไล่ดู Request ที่ส่งไปที่ JSON-Server มันส่งไปจริง หรือป่าว และส่งอะไรไปบ้างครับ โดยสิ่งที่มีก่อนครับ สำหรับขั้นตอนมาลุยไปพร้อมๆกันเลยครับ 📌 สร้าง Project สำหรับ Node ด้วยคำสั่ง npm init -y  ซึ่งได้ผลลัพธ์เป็น package.json  ที่ทำหน้าที่เก็บข้อมูลของ Project และ Package ที่เกี่ยวข้อง 📌 ลง JSON-Server 📌 ทดสอบ Code ดังนี้ครับ โดยใช้ Lib ของ bodyParser ซึ่งจะเป็น dependency ที่ JSON-Server Require อยู่แล้วครับ ไม่ต้อง Download เพิ่มเติมอะไรครับ 📌 Code สมบูรณ์ทั้งหมด ไฟล์  middleware.js ครับ 📌 ทดสอบ Run ครับ สิ่งที่ต้องมี 📌 ลองยิง Request เข้ามาครับ หลังจากเขียน Blog นี้เสร็จคงต้องกลับไปลองดู Script ที่เขียนแล้วว่ามันผิดตรงไหนครับ T___T

[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 ตอนนี้ด้วยครับ สิ่งที่ต้องมี ลุยเลยครับ สร้าง db.json NOTE: ถ้าสังเกตุดีๆ พบว่ามี Property Id ที่ต้องอยู่ใน db.json อาจจะงงว่าทำต้องใช้ Id เพราะมันเป็ฯที่นิยมในการใช้ครับ แต่จริงๆ มัน Custom ได้จากคำสั่ง json-server –id  ครับ Deploy Mock API ทดสอบผ่าน Postman บ้างครับ กรณีทดสอบของ Mock API ครับ – ลองดึงข้อมูล – Update ข้อมูล request ที่ Id = 1 ให้ requeststatus มีค่าเท่ากับ “completed” จากอันเมื่อกี้จริงๆ ส่งคำสั่ง PUT ก็ได้นะ แต่ PUT ต้องส่งไปทั้ง Object เท่านั้น โดย Object ที่ส่งไป – Request เพิ่ม ข้อมูลบ้าง NOTE: พวก PATCH…

[ENDNOTE] กำหนด Filter ที่ใช้สำหรับ Import Reference (Import Filters)

หลังจากปฏิเสธการจัดการ Reference ด้วย EndNote มานาน มันถึงวันที่ต้องใช้แล้วแหละ แต่จะพิมพ์เข้าไปในโปรแกรมเองมันจะดูถึกเกินไปครับ มาลองหา Reference ตามแหล่งสืบค้นต่างๆ แล้ว Import เข้ามาดีกว่าครับ มาลองกันครับ

[ENDNOTE] ติดตั้ง Style ของ IEEE

ทำไมต้องลง Style หละ สำหรับขั้นตอนการติดตั้ง Style ของ IEEE มีขั้นตอน ดังนี้ ต่อไปก็ต้องนั่งไล่ Review Proposal อีกครั้งครับ สู้ต่อไปปป

[WINDOWS] ลดพื้นที่ของ OS ด้วยคำสั่ง Compact

Microsoft Windows

เนื่องจากช่วงนี้ได้รับหน้าที่ทำให้ตัว Automate Test มันเกิดขึ้นจริงบน แต่ผมต้องทำกับ Software ที่เป็นกลุ่ม .Net ที่ไม่ใช่พวก .Net Core / Standard ครับ มันเป็นระบบเก่าพอสมควร ดังนั้น ถ้าทำ Automate Test เลยต้องทำบน OS Microsoft Windows ครับ ซึ่งปัญหาของมันหลักๆเลย กี่ที่เยอะมากครับ ยิ่งถ้าเอา VM ไปวางบน Host แล้ว เนื่อที่สำคัญมากครับ หลังจากค้นๆคำพบที่ลดพื้นที่ของ Windows 10 (เป็นต้นไป ถ้าอนาคตมีรุ่นใหม่มาหลังจากนี้ใช้งานได้ครับ) ได้แก่ Compact OS คือ อะไร Compact OS อย่างไร (Run CMD as Administrator กันก่อนครับ) หมายเหตุ: ระหว่างที่ทำ VM สำหรับ Automate Test ผมยังไม่เจอ ไม่พบวิธีทำ Test บน Docker Image ของ Windows  นะครับ Reference

[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 นี้เขียนเสร็จ ปุบได้ขอ Request แก้ Document ของตัว Camunda เลย เพราะมันใส่ไม่ครบครับ ^__^

[CR] Just Cut ตัดสบายรวดเร็ว ราคาสบายๆ

หลังจากทำงาน แก้ Defect เพื่อรีบปิดงานส่งลูกค้าไป เสาร์อาทิตย์มานั่งทำ Thesis นั่งอ่าน Paper ไปแล้ว ผมก็ยาว หัวก็ฟูกครับ คิดอะไรไม่ออกเลยยยย ไปตั้งผมดีกว่าครับ หลังจากปักหลักที่ Emporium FoodHall มาทั้งบ่ายครับ ทำเลที่ตั้ง เมื่อออกจาก BTS ทางหล่อ พบร้านตัวร้านตกแต่งเป็นโทนสีส้ม เด่นสง่ามาแต่ไกลเลยครับ ตัวเรามีขนาดเล็กครับ 3-4 ที่นั่งครับ มีช่างประจำ 3 คนครับ ร้านนี้ตัดผมอย่างเดียวนะครับ ตามชื่อร้านเลย จริงๆดูขนาดร้านแล้วก็ไม่น่าจะทำอย่างอื่นได้แล้ว พื้นที่จำกัดจริงๆ การจองคิวครับ เนื่องจากร้านอยู่บน BTS ครับ ทำให้มีวิธีการที่เหมือน BTS ครับ โดยมีขั้นตอน ดังนี้ ได้เวลาตัดผม