タイガー!タイガー!じれったいぞー!(SE編)

AS400, Java, JavaEE, JSF等の開発、習慣など。日々の気づきをまとめたブログ(備忘録)

10年ぶりにVBに触れる

昨日、我々が提供しているソフトウェアでエラーが発生しました。

10年前に導入をして、もう完全に枯れたと思っていました。

しかし、「障害」はいつも突然やってくるものなんですね!

最初、電話を受けたときは、関連するマスタ設定の不備や、設定ファイル上の設定ミスが原因だと決めつけていたのですが、エラーログを調べていくうちに、プログラム内部の問題であると疑いはじめてきました。

幸いにして、火曜日にそのソフトウェアを自PCで起動できる状態にしていたのです。

この「引き寄せ」、

いったい何なのでしょう?

インボイス制度関連で、近々改変する機会がありそうだと準備をしていたのですが、まさか環境構築後2日目にして本格的に使うようになるとは!

バグの原因にたどり着くまでには、3時間近くかかってしまいました。

具体的に言うと、Int関数を使うべきところを、CInt関数を使っていた!!

adonetvb.com

リンクのページを参照させていただきましたが、CInt関数は常に最も近い整数に値を丸めるとのこと。小数部分が、0.5の時に限り、最も近い偶数に値を丸めるので、四捨五入にならない。

 CInt(2.4) --> 2 
 CInt(2.5) --> 2 
 CInt(2.6) --> 3

今回のケースでは、上の例では、すべて2になって欲しかったので、Int関数へ変更。

発生源についてのコード修正は、わずか1文字を削除しただけ!
(他にも防御的プログラミングとして改善は加えましたが……)

無事、解決できて、安心しました!

まとめ

今回の関数は、以前から知りませんでしたが、久しぶりに触れる言語は、正直しんどいです。

今は、Javaphpに慣れ親しんでいるので、違和感しかありませんでした。

10年ぶりという時間がそうさせるのだと思います。

とはいえ、今回、いい勉強になりました。

また近々、このアプリについての改変は、発生する可能性が大なので、これを気に、当アプリの全体を俯瞰しておきたいと思っております。