この特集のトップページへ
>
Chapter 6:ビジネスロジックの設計
6.6.2 請求書の作成
●定期的に請求書を作成する
まずは,List 6-175に示すMakeBills.vbsというVBScriptのプログラムを用意する。このプログラムは,リストを見るとわかるように,Business.Billコンポーネントを実体化し,MakeBillsメソッドを呼び出すというものである。VBScriptとVisual Basicは言語仕様的に似ているため,理解するのは困難ではないと思われる。基本的には,3行目にあるようにBusiness.Billコンポーネントを実体化し,10行目でその時点の日付よりも1日まえの値をMakeBillsメソッドの引数として渡して呼び出しているというだけである。
ただ,11行目以降の処理は説明が必要であろう。11行目以降の処理はイベントログ(アプリケーションログ)に記録を残すためのものである。
Windows Scripting Host 2.0では,WScript.ShellオブジェクトのLogEventメソッドを呼び出すことによって,イベントログを記録する機能を備えている。
Windows Scripting Host 2.0はWindows 2000では標準搭載されているが,Windows NT 4.0やWindows 95,Windows 98では標準搭載されていない。もしWindows NT 4.0やWindows 95,Windows 98でWindows Scripting Host 2.0を利用したいのであれば,Microsoft社のWindows Scripting TechnologiesのWebページからダウンロードしてインストールするとよいだろう。
LogEventメソッドは,Table 6-19に示す書式になっている。
Table 6-19 LogEventメソッド
【書式】
LogEvent (intType, strMessage, strTarget)
【引数】
intType
イベントの種類を表現する数値。次のいずれかの値を指定する。
| 値 | 意味 |
|---|---|
| 0 | 成功のログ |
| 1 | エラーログ |
| 2 | 警告ログ |
| 4 | 情報ログ |
| 8 | 成功の監査ログ |
| 16 | 失敗の監査ログ |
strMessage
記録したいテキストを指定する。strTarget
イベントを記録するサーバー名を指定する。省略可能。省略した場合には,ローカルシステムに記録される。
【戻り値】
正常に記録されたときにはTrueが,エラーが発生したときにはFalseが戻る。
List 6-175の16行目と18行目では,LogEventメソッドを使ってイベントログを記録している。必ずしもイベントログを記録する必要はないが,サーバー側のバックグラウンドで定期的に動作するプログラムでは,正しく動作しているのかどうかを視覚的に確認することができないので,できるだけイベントログなどにその実行結果を残すようにするのが望ましい。成功したというログを残すかどうかはともかくとして,処理が失敗したときには,何らかの対策をとらねばならないことが多い。たとえば,今回のように請求書の作成に用いるスクリプトが実行に失敗した場合には,請求書の作成ができていないということであるから,データベースが壊れていないかを見直したりしたうえで,スクリプトを手動で再実行して請求書を作り直すといった作業が必要になるだろう。そういった意味で,失敗したときには,イベントログを使い,きちんと管理者にその旨を告げる機構を実装すべきである。
Windows 95やWindows 98は,イベントログ機能を搭載していない。その場合,LogEventメソッドを呼び出すと,システムフォルダにWSH.logというテキストファイルが生成され,出力内容が記録される。
| Chapter 6 82/92 |
