ちょっと怪しいノーツの小部屋にようこそ。今回は,Excelのコマンドボタンを押下して,Notesのエージェントを実行する方法をご紹介します。動作検証で何度もエージェントを実行したい場合に重宝するかと思います。
免責事項
本Webサイトの手順を実行することでデータやお使いの環境が破壊される可能性があります。本Webサイトは,読者諸兄姉ご自身の責任と判断でご使用ください。本Webサイトの手順を実行したことに起因する直接的又は間接的な損害に関して一切の責任を負うものではありません。また,記事の内容等の安全性,妥当性,正確性,最新性などに対する保証行為を一切しておりません。
目次
やりたいこと
Domino Designer が導入されていないユーザにエージェントのテストを依頼したい。Excelに,サーバ名,DBパス,エージェント名の入力欄を設け,ボタンを押下するだけでタイムスケジュールエージェントを実行したい。
前提条件
サーバ上でエージェントを実行できる権限が付与されたIDで,Notesクライアントを起動していることが条件となります。Notesクライアントが起動していない場合や,サーバ上でエージェントを実行できる権限がない場合は,エージェントを起動することができません。
サンプル
Private Sub CommandButton1_Click()
Dim ss As Object ' NotesSession
Dim db As Object ' NotesDatabase
Dim agent As Object ' NotesAgent
Dim srvName As String
Dim dbPath As String
Dim agentName As String
' -- 初期設定
srvName$ = TextBox1.Value
dbPath$ = TextBox2.Value
agentName$ = TextBox3.Value
' -- 入力CHK
If (srvName$ = "") Then
MsgBox "サーバ名を入力してください"
Exit Sub
End If
If (dbPath$ = "") Then
MsgBox "DBパスを入力してください"
Exit Sub
End If
If (agentName$ = "") Then
MsgBox "エージェント名を入力してください"
Exit Sub
End If
' -- NotesDBの取得
Set ss = CreateObject("Notes.NotesSession")
Set db = ss.GETDATABASE(srvName$, dbPath$)
Set agent = db.GetAgent(agentName$)
' -- エージェントの実行
If (agent.RunOnServer = 0) Then
MsgBox "Agent ran", , "Success"
Else
MsgBox "Agent did not run", , "Failure"
End If
End Sub
上のサンプルコードをExcelのコマンドボタンに実装してください。サンプルコードではシート上に配置したテキストボックスから、必要な情報を取得しています。実行するエージェントが1つしかない場合は,サーバ名やDB名,エージェント名をオンコードで設定してもよいでしょう。