COLUMN
開発
ある朝、Accessの業務ツールを使っている現場のユーザーから「前日の売上が入っていない」と問い合わせがありました。Officeを最新のバージョンに上げた直後のことです。私はAccessやExcelで作られた業務ツールの保守を5年ほど担当していますが、こうした「昨日まで動いていたのに、Officeを更新した途端に止まる」という場面は珍しくありません。しかも原因の多くは、複雑な不具合ではなく、意外と単純なところにあります。この記事では、実際に自動処理が止まったときに何が起きていたのか、その場でどう直し、二度と同じことが起きないようどう作り変えたのかを、保守の現場からお話しします。
Officeのバージョンアップで業務ツールが止まる原因の多くは、Officeのバージョン固有の情報が書かれていることにあります。
実際にあったのは、タスクスケジューラで動かしていたバッチ処理が止まった例です。このバッチは、業務が始まる前までに前日分の売上実績を取り込み、その日の業務ですぐ使える状態にしておく役割を持っていました。
問い合わせを受けて確認すると、タスクスケジューラがエラーで止まっていました。前日の売上が入っていない状態では、その日の業務を始められません。
調べてみると、原因は単純でした。このバッチは、処理の本体であるAccessの実行ファイル(拡張子がexeのプログラム本体)を、フルパス(「C:\…\MSACCESS.EXE」)で指定して呼び出していたのです。Officeを最新のバージョンに上げたことで、この実行ファイルの置き場所が変わりました。その結果、記載されていたパスにAccessの実行ファイルがなくなっており、動かなくなっていたのです。
対応は、応急処置と作り変えの二段構えで進めました。
まず、その日の業務を回すための応急処置として、次の手順で復旧させました。
1. バージョンアップ後の正しいパス(実行ファイルの新しい置き場所)を調べる
2. バッチに書かれていたパスを、バージョンアップ後のパスに置き換える
これで当日の処理は元どおり動くようになりました。
ただ、これは根本的な解決ではありません。次にまたOfficeをバージョンアップすれば、同じことが発生する可能性があります。今回のケースでは、外部のバッチからAccessを起動して取り込む形そのものをやめ、Accessの中で売上データを使う直前に取りに行く方式へ変えました。扱うデータは2〜3分で取り込める量で、運用に耐えられる時間だったため、この方式で対応しました。
別のツールでは、処理の都合で実行ファイルのパスをどうしても扱う必要が残りました。たとえばAccessから別のAccessを呼び出すような処理です。その場合は、パスを固定で書くのをやめ、Windowsの機能(Windows API)を使ってAccessがインストールされている場所を調べ、そこから実行ファイルのパスを組み立てる方式にしました。パスを直接書かないので、更新で置き場所が変わっても、新しいパスを自動で拾えるようになります。
バージョンアップのたびに止めないつくりにするには、更新で変わる可能性があるものを、プログラムの中に固定で書かないことが基本になります。今回のパスを直接指定するような、一番簡単な書き方ほど、環境が変わったときに弱くなりがちです。保守をしてきた中でも、こうした固定のパスで書かれた業務ツールは少なくない、という印象があります。
ここで見落とされやすいのが、止まった原因に現場では気づきにくいという点です。作った本人であれば、どこにどんな記載をしたのか分かるので、原因にたどり着けます。けれども多くの現場では、作った担当者がすでにおらず、ツールだけを使い続けています。
使う側は中の作りまで把握していないため、ある日突然動かなくなっても、なぜ止まったのか見当がつきません。そうなると原因の切り分けに時間がかかり、その間、業務が止まったままになります。
こうした状態のツールは、その場しのぎの修正を重ねるよりも、更新に強い作りへ計画的に作り直す方が、長い目で見て安心して使えます。保守する人がいなくなった業務ツールの作り直しは、どこが問題になるか、これから問題になりそうな箇所はないか?を見つけるために経験が必要になります。
Officeのバージョンアップで業務ツールが止まる原因の多くは、Officeのバージョン固有の情報が書かれていることにあります。今回の例では、まず正しいパスへ書き換えて急場をしのぎ、その後は外部から起動する作り自体を見直して、更新に強い形へ変えました。大切なのは、止まったときの応急処置と、再発させないための作り直しを分けて考えることです。まずは、お使いのツールが固定のパスに頼っていないか確認してみてください。私自身、保守の現場で何度も立ち会ってきた場面です。
愛知県で40年、開発と保守を手がけてきた当社では、こうした業務ツールの見直しや作り直しのご相談に対応しています。お気軽にお問い合わせください。
お問合せ
ITコラム 一覧