2025/09/26

共通部品にチャレンジ:#7)LotusScript 実行ログ - 基本機能のテスト

前回までに作成したスクリプトライブラリの動作確認をします。簡単なサンプルプログラムを作成して、ライブラリの使い方と実行結果を確認しましょう。


エージェントの作成とテスト

新規でエージェントを作成します。名前には別名を付けた方がテストになりますね。トリガーはアクションメニューから実行として、対象は ”なし” とします。

サンプルで作成するプログラムは、1 ~ n までの総和を求めるプログラムです。計算の経過をログに出力します。

Option Declare
Use "StdLog"    '実行ログ の組み込み

Sub Initialize
   Dim i As Integer
   Dim iMax As Integer
   Dim iSum As Integer
   Dim s As String

   On Error GoTo ErrProc

   '初期化
   iMax = 10

   'ログの開始
   Call LogOpen("StdLog のテスト")
   Call PrintLog("1 ~ " & CStr(iMax) & " までの総和を求めます...")

   '1 ~ iMax までの総和を計算
   For i = 1 To iMax
      s = CStr(i) & ") " & CStr(iSum) & " + " & CStr(i) & " = "
      iSum = iSum + i
      '計算経過の出力
      Call PrintLog(s & CStr(iSum))
   Next

   Call PrintSummary("1 ~ " & CStr(iMax) & " までの総和は " & CStr(iSum) & " です。")

   'ログの終了
   Call LogClose()

   Exit Sub

ErrProc:
   Call PrintError(Error$ & " (Err = " & CStr(Err) & ", Erl = " & CStr(Erl) & ")")
   End
End Sub

ライブラリの使い方は、

  1. ライブラリ StdLog を Use で呼び出す
  2. LogOpen 関数でログ出力を開始
  3. PrintLog など Print* 関数でログを出力
  4. 最後に LogClose をコールしてログ出力を終了
となります。

実際に実行すると次のような文書が作成されます。


エラーログの出力のテスト

サンプルプログラムでは、不測の事態に備え On Error でエラー処理を記述しており、エラー発生時には PrintError 関数でそのエラー情報を出力しています。

その動作確認のため、For ループ内の最後の行にエラーを強制的に発生させます。

      Error 1000, "検証のために発生させたエラー"

実行結果を確認するとログ内では赤字でラーメッセージが表示され、エラーの箇所が一目瞭然ですね。

なお、エラーが発生した場合、End 命令でスクリプトを終了しています。LogClose をコールせずに終了しているのですが、『StdLog: LogClose() が実行されずに終了しました...』と出力されています。Terminate の設定が正しく動いていることが確認できます。


次回の予定

テスト実行できるようになり、ログがたまってくるとビューが欲しくなります。そこで、次回はログを見やすく表示するビューを作成します。


前回 共通部品にチャレンジ


0 件のコメント:

コメントを投稿