エージェントでロータススクリプトコードを記述しました。Xpageのボタンをクリックしてエージェントを実行する必要があります。
どうすれば達成できますか?
前もって感謝します
エージェントでロータススクリプトコードを記述しました。Xpageのボタンをクリックしてエージェントを実行する必要があります。
どうすれば達成できますか?
前もって感謝します
このソリューションの問題は、エージェントで操作されるデータを使用する場合、xpageにメモドキュメントを再ロードする必要があることです。これは、次のコード行で実行できます。
var ag = database.getAgent("agentname");
if(ag != null){
var id = doc.noteid;
ag.runonserver(id);
doc.recycle();
doc = database.getdocumentbyid(id);
// check if the agent did its job.
// if so do stuff otherwhise report this to the user?
}
バージョン8.5.2以降、エージェントクラスに新しいメソッドが追加されました
agent.runWithDocumentContext(NotesDocument doc);
このメソッドは、xPageのメモリ内ドキュメントを使用します。したがって、ドキュメントをエージェント自体に保存する必要はありませんが、変更を加えてエージェントコードを終了することはできます。xpageは、加えられた変更を直接利用できます。これにより、エージェントが仕事をしたかどうかを確認したり、ドキュメントをリロードしたりする手間が省けます。
これを機能させるには、エージェントのオプションを次のように設定する必要があります
クリックイベントでこれを呼び出すだけです(エージェントに使用される言語に違いはありません)
database.getAgent("agentName").run() or database.getAgent("agentName").runOnServer()
エージェントのランタイムはそのようなものでなければならないことに注意してください