エージェントを有効化する

病床からの復帰第一弾です。

NotesDBに作成したスケジュールエージェント(ヘルプでは定期エージェントとなってます)は、LotusScriptで有効化/無効化を切り替えることができます。

【サンプルソース】
Sub Click(Source As Button)
 Dim session As New NotesSession
 Dim db As NotesDatabase
 Dim agent As NotesAgent
 
 'PDF変換エージェントを取得する
 Set db = session.CurrentDatabase
 Set agent = db.GetAgent( "エージェント名" )
 
 'エージェントを有効化して保存する
 agent.IsEnabled = True
 Call agent.Save()
End Sub

とても簡単ですね。
ノーツDBを取得して、エージェントを取得して、IsEnabledプロパティをTrueにして、エージェントを保存するだけ。

これはヘルプにもあるとおり、「定期エージェント」でのみ有効です。
実際のエージェント画面を見てもらえば分かりますが、「有効」「無効」を示すアイコンがあるエージェントでだけ、使えるんですね。


ところが・・・
定期エージェントにも関わらず、このサンプルが実行出来ない(つまりは、IsEnabledプロパティの変更が有効にならない)場合があります。

下図を見てください。エージェントの設定画面です。



ここにあるように、「エージェントが有効になったときにサーバーを指定」のチェックがついていると、NotesAgentクラスのIsEnabledプロパティをTrueにしても保存できないのです。


これに対する解決策は2つあります。

1.「エージェントが有効になったときにサーバーを指定」のチェックを外しておく。
 そうすれば、問題なくエージェントが保存できます。

2.NotesAgentクラスのServerNameプロパティを一緒に設定する
 NotesAgentクラスのIsEnabledプロパティをTrueにした後、ServerNameプロパティも一緒に設定しておくことで、エージェントが保存できるようになります。
 サーバ名は正しいものを設定しないと、このエージェントそのものが動かなくなりますので、注意が必要です。
 通常は、DBがあるサーバで動かすでしょうから、
 NotesSession.CurrentDatabase.Serverで取得すれば良いでしょう。



ということで、エージェントの活用方法についてでした。


【PR】ノーツ/ドミノに関するお問い合わせは下記まで【PR】
Lotus Notes/Domino カスタマイズとセキュリティ強化 - 株式会社エフ

コメント