WEB アプリケーション用に DOMINO をプログラミングする
エージェントを実行するには、URL が許可される箇所に OpenAgent URL コマンドを入力します。たとえば次のようになります。
http://localhost/Web+test.nsf/Change+Status+to+Closed?OpenAgent
あるいは次のコードを含むアクションまたはホットスポットを実行します。
@Command([ToolsRunMacro]; "(Change Status to Closed)")
フォームの WebQueryOpen イベントで「ChangeHeadText」エージェントを呼び出します。実行対象は、[None] です。次のようなコードになります。
@Command([ToolsRunMacro]; "ChangeHeadText")
ChangeHeadText には次の式が含まれています。このフォームを使った文書がブラウザから開かれると、WebQueryOpen によって HeadText が変更されます。Notes Client から開かれると HeadText への変更はありません。
FIELD HeadText := "This document is being opened from a browser at " + @Text(@Now); @All
次のようなコードになります。
Sub Initialize Dim s As New NotesSession Dim db As NotesDatabase Dim dc As NotesDocumentCollection Dim doc As NotesDocument Dim arg As String, p1 As Long arg = s.DocumentContext.Query_String(0) p1 = Instr(arg, "&") If p1 = 0 Then Print "Need argument 'Open' or 'Closed'" Exit Sub Else arg = Lcase(Mid$(arg, p1 + 1)) If arg <> "open" And arg <> "closed" Then Print "Argument must be 'Open' or 'Closed'" Exit Sub End If End If arg = Ucase(Left$(arg, 1)) + Right$(arg, Len(arg) - 1) Set db = s.CurrentDatabase Set dc = db.UnprocessedDocuments Set doc = dc.GetFirstDocument Do While Not(doc Is Nothing) doc.Status = arg Call doc.Save(False, True) Set doc = dc.GetNextDocument(doc) Loop Print "<B>Status changed to "+ arg + " in all documents</B>" End Sub