今回の内容はABAPに限った話ではなく、プログラミング全般においての基本的なことではありますが、一番良くある不具合原因でもあるので、改めて注意喚起と自分への戒めとして書いておきます。
本当に何年プログラミングに携わっていても出してしまうのが、CLEAR漏れです。これは潜在しているものを含めると1つのプロジェクトの中でも相当な数が発生しているはずです。
具体的にはLOOPの中で使う変数のクリアを忘れてしまっていて意図していない値が残る事によって動作がおかしくなるというものです。基本的にはLOOPの中で繰り返し値を入れ替えながら使う変数は、LOOPの最初にCLEAR命令を入れておくべきです。
ただし、何かしらの単位で複数行に渡って値を保持しながら処理をする必要がある時には細心の注意を払いながらプログラムを書くことです。可能であれば、しっかりとコメントも残して他者がメンテナンスする時にも誤らない事まで気を回せたらベストですね。
とは言っても、時間に追われながらプログラムを書いているケースが多いと思うので、ついうっかり忘れるという事も分からなくは無いのですが、プログラムが稼働した後に判明すると余計に時間が掛かってしまうので、作成時に注意するようにしましょう。
設計書等にも通常とは違う扱いをする変数については書いておくと親切かなと思いますね。
こういうのは自動でチェック出来たら良いんですけどね・・・
もしかしたらインスペクターツール等でチェックできる仕組みがあるのかもしれ無いので、もし知ってる人がいたら教えてください。
コメント