余談ですが、以前は"NotesのWeb化"といえばフォームやビューのままWeb化する技術を指しました。
2008-2009年にXPagesでWeb化する技術が追加されてから、どちらを指すのかまぎらわしくないよう
従来の技術については、
英語圏ではよく"Classical"という表現を使って、後から出てきたXPagesと区別しています。
あまり使われない過去の技術といわれてる気もして、あまりいい気がしないのですが
ほかに流通している表現もないので。。
そんなClassicalな作文の続きです。
 

以前書いたように、従来型(Classical)のNotes Web化では
WebQuery- イベントの代わりに $$Query- 予約フィールドが使えます。
ただ、こんな留意点があります。

条件付きでエージェントを起動させたいとき。

WebQuery- イベントは、@ToolsRunMacroでエージェントを起動しますので、式はこんな感じになるでしょう。
    @If(<条件>;@ToolsRunMacro("<エージェント名>");"");
代わりに$$Query- フィールドを使う場合は、エージェント名を直接戻すので、こうすればいいかな?
    @If(<条件>;("<エージェント名>");"");
ところが、いざやってみると。

    編集モードで画面を開いたときだけエージェントを起動したいと、$$QueryOpenAgentフィールドに
    @If(@IsDocBeingEdited;("<エージェント名>");""); と、
    イメージ 2

    式を入れてから、画面を開こうとしたところ
    イメージ 1

    あれ、404エラー。。
どうやら、$$Query- フィールドを用意する場合、エージェント名が必須になるようです。
無条件で指定のエージェントを実行しようとするつくりのようです。

条件付きで実行しないというのはナシ、必ず何かエージェントがないとエラーになる。

だから、編集モードでないとき、「""」…名なしのエージェント  を実行しようとして、
そんなもの見つからないよ、とエラーを返しているようです。

ではどうするか。

開始しても何もせずに終了するダミーのエージェントを作っておいて、それを実行させる
    @If(@IsDocBeingEdited;("<エージェント名>");"<ダミーのエージェント名>");
たぶんできると思いますが、無意味な設計要素を増やすやり方は、私はなるだけ避けたいので

$$QueryOpenAgentフィールドの式で条件を入れるのをやめ、
    "<エージェント名>" に、戻した上で、エージェント内で条件を入れました。
エージェント内のLotusScriptにて、
DocumentContextで取得した文書がEditModeでなければ後の処理を行わない、という式を書いています。


以上、$$Query- フィールドを使う場合は、実在のエージェントを指定し、それを常に実行することになる 
というお話でした。

$$QueryOpenAgentフィールドでお話を書きましたが、やってみると$$QuerySaveAgentフィールドも同様のようです。