LevelUp! Studio » internet banking https://blog.levelup.in.th Experience the new world. Fri, 26 May 2017 10:06:07 +0000 th hourly 1 http://wordpress.org/?v=3.8.1 ว่าด้วยเรื่องล็อกธนาคาร https://blog.levelup.in.th/2009/07/31/about-bank-log%e0%b8%a7%e0%b9%88%e0%b8%b2%e0%b8%94%e0%b9%89%e0%b8%a7%e0%b8%a2%e0%b9%80%e0%b8%a3%e0%b8%b7%e0%b9%88%e0%b8%ad%e0%b8%87%e0%b8%a5%e0%b9%87%e0%b8%ad%e0%b8%81%e0%b8%98%e0%b8%99%e0%b8%b2/ https://blog.levelup.in.th/2009/07/31/about-bank-log%e0%b8%a7%e0%b9%88%e0%b8%b2%e0%b8%94%e0%b9%89%e0%b8%a7%e0%b8%a2%e0%b9%80%e0%b8%a3%e0%b8%b7%e0%b9%88%e0%b8%ad%e0%b8%87%e0%b8%a5%e0%b9%87%e0%b8%ad%e0%b8%81%e0%b8%98%e0%b8%99%e0%b8%b2/#comments Fri, 31 Jul 2009 07:20:57 +0000 http://blog.levelup.in.th/?p=97  

Bank Transaction log คืออะไร !!!

Transaction log คือ บันทึกการเปลี่ยนแปลงบัญชีธนาคาร ไม่ว่าจะเป็นการโอนเข้า หรือถอนออก (เหมือนในสมุดเงินฝากนั้นแหละ) แต่บันทึกเหล่านี้ มันจะอยู่ในรูปแบบดิจิตอลตรับ ฟังดูดีมีชาติตระกูลกว่าสมุดธนาคารเยอะ 55+ โดยในตอนนี้แทบทุกธนาคารได้ให้บริการในการจัดการบัญชีธนาคารผ่านอินเตอร์เน็ตแล้ว เราสามารถเข้าไปดาวน์โหลดเหล่านี้ได้จากเวปไซต์ของธนาคารที่ให้บริการครับ

น่าใช้ตรงไหน

“แล้วเราจะเอาล็อกนี้มาทำอะไรหล่ะเนี่ย เปิดสมุดธนาคารไม่ง่ายหว่าเหรอฟะ” ที่กล่าวมา จะถูกต้องครับถ้า สมุดเงินฝากของเรา ไม่ต้องทำบัญชี หรือมีการเปลี่ยนแปลงรายวันน้อย แต่ถ้าเราเป็นบริษัทค้าขายที่มีการเปลี่ยนแปลงบัญชีตลอดเวลาแล้ว ไม่ง่ายเลยที่จะต้องเอาสมุดธนาคารไปอัพเดททุกวัน แล้วกับมากรอกข้อมูลทีละสองสามร้อยเสตตเมนต์ แต่ถ้าเราลองหันมาให้ programmer ของเราเขียนโปรแกรมอ่านล็อกแล้วเก็บข้อมูลเข้าดาตาเบสส่วนตัวเองสิ ชีวิตของฝ่ายบัญชีจะสดใสขึ้นกว่าเดิมมากครับ

งั้นจะมีปัญหาอะไรมั้ย

ปัญหาสำคัญที่โปรแกรมจะได้เจอเลย อันดับแรกคือ ฟอร์แมทของล็อกครับ ซึ่งล็อกของธนาคารแต่ละธนาคารมีรูปแบบเป็นของตัวเอง ไม่ว่าจะเป็น plain-text,csv,excel และ HTML ยิ่งแล้วใหญ่ที่บางธนาคารมีฟอร์แมทของล็อกรายวัน กับฟอร์แมทของล็อกตามช่วงเวลา เป็นคนละฟอร์แมทกัน โอ้แม่เจ้า !! if เต็มโปรแกรม ยิ่งมีธนาคารหนึ่ง มีฟอร์แมทเป็น HTML ภายใต้แทก table ตอนนั้นเห็นล็อกถึงกับอุทานในใจว่า เฮ้ย มันเรียกว่าล็อกจริงหรอวะ ไปกอปี้จากหน้าเวปมาเลยยังดีกว่า เฮ้อ… เอาพื้นที่บล็อกมาระบายอารมย์ซัก ย่อหน้าคงไม่มีใครว่ามั้ง = =

และปัญหานี้ ผมแก้ยังไง ยังดีที่ล็อดส่วนใหญ่ แบ่งบรรทัดด้วย \n และภายในบรรทัดเป็นแบ่งด้วยตัวแบ่งที่แน่นอน บางล็อกอาจมี header 2-4 บรรทัดก็ข้ามไปครับ ส่วนแบบ HTML นั้นใส่ if ไว้ใน loop ซัก 3-5 ตัวก็คงเอาอยู่หล่ะครับ 55+

ปัญหาต่อไป ก็คงเป็นการรับประกันว่า ข้อมูลจะไม่ซ้ำซ้อนอะครับ ปัญหานี้อาจจะแก้ง่ายๆ ที่จะทำบัญชีทุกๆเที่ยงคืน แปลว่าเราจะเอาล็อกของเมื่อวานที่จะไม่มีการเปลี่ยนแปลงอีกแล้ว มาเก็บเข้าดาตาเบสของเราครับ แต่ถ้าบริษัทที่เราทำโปรแกรมให้มีการบัญชีที่ไม่ใช่ตอนเที่ยงคืน (แบบที่ผมไปทำมา) ตัวที่สามารถเอามาตรวจสอบได้ก็คงเป็นวันที่ และเวลาครับ แต่มีแค่ไม่กี่ธนาคารหรอกครับ ที่มี”เวลา” ให้ในล็อก ก็ต้องใช้ข้อมูล”อื่นๆ” อาทิ เช่น รหัส (Transaction code) บลาๆ แต่สุดท้าย ถ้าไม่มี “เวลา” ในล็อก ก็ไม่มีข้อมูลไหนที่รับประกันได้ว่าจะไม่ซ้ำครับ ก็ต้องให้ฝ่ายบัญชีไปเลือกเอาว่า สเตตเมนต์ไหนซ้ำบ้าง

 

]]>
https://blog.levelup.in.th/2009/07/31/about-bank-log%e0%b8%a7%e0%b9%88%e0%b8%b2%e0%b8%94%e0%b9%89%e0%b8%a7%e0%b8%a2%e0%b9%80%e0%b8%a3%e0%b8%b7%e0%b9%88%e0%b8%ad%e0%b8%87%e0%b8%a5%e0%b9%87%e0%b8%ad%e0%b8%81%e0%b8%98%e0%b8%99%e0%b8%b2/feed/ 0