ว่าด้วยเรื่องล็อกธนาคาร by

31
Jul
0

 

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) บลาๆ แต่สุดท้าย ถ้าไม่มี “เวลา” ในล็อก ก็ไม่มีข้อมูลไหนที่รับประกันได้ว่าจะไม่ซ้ำครับ ก็ต้องให้ฝ่ายบัญชีไปเลือกเอาว่า สเตตเมนต์ไหนซ้ำบ้าง

 

Enjoy this article?

Consider subscribing to our RSS feed!

ไม่มีความเห็น

ยังไม่มีความเห็น

ใส่ความเห็น

RSS feed for comments on this post