当ブログに掲載しているサンプルは、すべて利用者の自己責任という形でお願いします。
ただし、明らかな不具合がある場合、ご連絡いただければ、訂正記事を出します。
また、こちらのサンプルは、別のサイト等への公開、転載は一切禁止しています。
どうしてもと言う場合は、筆者にあらかじめご連絡ください。

テクてく Lotus 技術者 Slack に参加しよう!

2009年10月27日火曜日

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

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

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 カスタマイズとセキュリティ強化 - 株式会社エフ

0 件のコメント: