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

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

2009年10月30日金曜日

LotusScriptで実行したエージェントは・・・

昨日に続いて、今日も「今まで知らなかった・・・」シリーズです。

プログラムからエージェントを実行する場合、皆さんはどのようにしているでしょうか?

@コマンドの
@Command([ToolsRunMacro];"エージェント名")
@Command([RunAgent];"エージェント名")
を使うか、もしくは、
LotusScriptのNotesAgentクラスのRunメソッド(RunOnServerメソッド)
を使うかのいずれかでしょう。


一見、@コマンドかLotusScriptかの違いしかないように感じますが、実はそうではなかったのです!

実は、LotusScriptのNotesAgentクラスRunメソッドでは、できないことがあるのです。

デザイナーヘルプを良く読むと分かるのですが・・・
MessageBox(Msgbox)やInputboxなど、ユーザからの入力を待つような関数が実行出来ないのです。

ちなみにヘルプには『ユーザーは呼び出されたエージェントと直接対話できません。ユーザーの出力は Lotus Domino log に保存されます。』と書いてあります。
※クライアントからエージェントを実行した場合、「Lotus Domino log」というのは、ローカルPCにある「log.nsf」を指すので、そこに記録されます。

エージェントを間接的に実行するような場合は、この点に注意しましょう。
@コマンドや@関数も積極的に利用しましょう!という良い教訓ですね?

0 件のコメント: