Web ユーザーが文書を開く前または文書を保存する前にエラーやフィールド値などをチェックするには、ユーザーの操作によって起動される共有エージェントを作成します。次に、エージェントを起動する @Command([RunAgent]) または @Command([ToolsRunMacro]) を使用する式を記述し、その式を WebQueryOpen フォームイベントまたは WebQuerySave フォームイベントに添付します。このようにすると、LotusScript® の QueryOpen フォームイベントおよび QuerySave フォームイベントと同様の機能を実装することができます。LotusScript の QueryOpen フォームイベントおよび QuerySave フォームイベントは、Web では使用できません。
WebQueryOpen イベントを使用する場合は、エージェントが実行された後、文書が HTML に変換されてブラウザに送信されます。Domino® では、このコンテキスト内のエージェントからの出力はすべて無視されます。
このエージェントの使用例には、@コマンドでは不可能な大規模な計算処理を行う場合や、文書を開いたユーザー名とその日時に関する統計を集計する場合などがあります。
WebQuerySave イベントは、フィールドの入力確認式が実行された後で、文書が実際にディスクに保存されるかメールで送信される前に、エージェントを実行します。このエージェントにより、文書を変更したり、文書のデータを使用して別の操作を実行したりすることができます。文書はエージェントの実行後、自動的に保存されます。このエージェントでは、NotesDocument.Save を呼び出すなどの明示的な方法では、文書を保存しないでください。明示的な保存を行うと、結果が不正確になる場合があります。
WebQuerySave エージェントでは、作成されたものを出力して、ユーザーに送り返すことができます。例えば、LotusScript エージェントでは、Print コマンドにより、HTML の未加工データを返却することができます。エージェントで出力データを作成する場合は、フォームに [$$Return] フィールドは使用できません。Domino からはエージェントの出力データだけが返され、このフィールドは無視されます。
このエージェントの使用例を以下に示します。