วันนี้มาเช้าเลย 8.30 มาเปิด office พร้อมกับแม่บ้าน นั่งกินขนมปัง+ชาเลม่อน และก็เริ่มงานในการปั่นหน้าแรกแสดงข้อมูลตามช่วงเวลาที่กำหนดต่อ คือ การให้ javaScript เรียกในส่วน frontend ไปเรียกในส่วน business ส่งงานไปให้ส่วน dataaccess เพื่อจัดการ Query ข้อมูลออกมาแล้ว ส่งข้อมูลกลับมาในรูปแบบ json เพื่อที่จะมาทำกราฟ
ปัญหาที่พบในการทำงานวันนี้
- ปัญหา: java.lang.RuntimeException: java.text.ParseException: Unparseable date: “2012-05-03″
สาเหตุ: ว่าตัว wrapper จาก javascrpt >> java จะรับ Parameter แบบ ‘d/m/Y’ เช่น 23/04/1990 เท่านั้น ข้อมูลที่ส่งไปใน ทางฝั่ง searchInboundAuditByMonth.js อยู่ในรูปแบบ Y-m-d (1990-04-23)
วิธีแก้: เพิ่มคำสั่งในการแก้ข้อมูลวันที่ให้เป็นไปตามรูปแบบที่กำหนด
objs['Month'] = Ext.util.Format.date(tmp1,"d/m/Y")
- ปัญหา: 19949 2555-05-04 11:44:52,666 [@] [http-8080-5] WARN org.directwebremoting.convert.BasicObjectConverter – Missing setter: com.rmv.mdr.frontend.bean.request.SearchInboundAuditByMonthRequest.setMonth() to match javascript property: Month. Check include/exclude rules and overloaded methods.
สาเหตุ: ไม่สามารถที่จะเอาข้่อมูลที่ส่งไปใน javascript ในรูปแบบ json มาแปลงเป็น object ของ Class SearchInboundAuditByMonthRequest.java โดยในตัว Index ใน json(Month) กับ ใน java(month) มีความแตกต่างกัน
วิธีแก้: ปรับแก้ Index ใน json ให้เหมือนกันใน java
หลังจากแก้ปัญหาเหล่านี้เสร็จ ก็สามารถที่จะทำหน้าแรกออกมาได้สมบูรณ์ในช่วงบ่าย แต่ยังอาจจะต้องมีการแก้ เพราะต้องรอหัวหน้ามาดูว่า จะต้องการที่จะเอาข้อมูลอะไรลงในกราฟบ้าง ต่อมาก็จำทะในส่วนของหน้าสอง ที่เรียกข้อมูลมาดูเฉพาะเดือน ซึ่งก็เสร็จในช่วงเย็น แต่พี่ดูแลมาบอกว่าต้องแสดงข้อมูลในแต่ละเดือน ไม่ใช่แต่ละวันภายในเดือน สงสัยว่าพี่เค้าเบลอเอง เพราะตอนสั่งเราก็ถามย้ำไปแล้ว แต่ก็ไม่เป็นไรเดี๋ยววันอังคาร ก็มานั่งทำต่อ ^___^
ตัวอย่าง SQL ที่ใช้
- ใน TOAD
SELECT * FROM MD_INBOUNDAUDIT_REPORTTSTV01 WHERE DATE_PROCESSED = '02-MAY-2012'
- ใน Spring Framework
SELECT * FROM MD_INBOUNDAUDIT_REPORTTSTV01 WHERE TO_CHAR(DATE_PROCESSED,'MM/YYYY') = TO_CHAR(DATE_PROCESSED,'MM/YYYY')
Discover more from naiwaen@DebuggingSoft
Subscribe to get the latest posts sent to your email.