代理间的参数传递

代理間用Run方法傳遞參數實際上是在第一個代理中創建一份文件,將要傳遞的值賦給文件中的item,然後得到第二個代理的對象并調用Run方法,Run方法的參數是第一個代理創建的文件的NoteID,這樣在第二個代理中根據文件的NoteID得到文件,然后對文件中的值進行一系列操作,這樣就完成了參數傳遞。然後在第一個代理中將之前創建的文件在內存中刪除,然後再根據NoteID得到被第二個代理操作并保存的文件,再對文件中的值進行操作,這樣又完成了一次參數傳遞。
例如:
parameterPassing 代理:
Dim ss As New NotesSession
Dim db As NotesDatabase
Dim agent As NotesAgent
Dim doc As NotesDocument
 Dim item As NotesItem
Dim paramid As String
Set db = ss.CurrentDatabase '得到要Run的代理的對象
Set agent = db.GetAgent("invokedAgent") '創建一份文件
Set doc = db.CreateDocument '將要傳遞的值賦給創建的文件中的
item Set item = doc.AppendItemValue("status","none")
Call doc.Save(True,False) '得到文件的NoteID
paramid = doc.NoteID 'Run代理
 Call agent.Run(paramid) '將創建的文件在內存中刪除(即刪除文件的引用對象)
Delete doc '得到invokedAgent代理中保存的文件
Set doc = db.GetDocumentByID(paramid)
Set item = doc.GetFirstItem("status")
 status = item.Text
 Messagebox "status of invokedAgent = " & status '從磁盤上永久刪除此份文件
Call doc.Remove(True)

invokedAgent:

Dim ss As New NotesSession
Dim db As NotesDatabase
Dim agent As NotesAgent
 Dim doc As NotesDocument
Dim item As NotesItem
Dim noteID As String
Set db = ss.CurrentDatabase
 Set agent = ss.CurrentAgent
noteID = agent.ParameterDocID '根據傳遞過來的參數noteID得到文件
Set doc = db.GetDocumentByID(noteID) '對文件中的item值進行操作
 Set item = doc.ReplaceItemValue("status","OK")
 Call doc.Save(True,False)
-----------------------------------------------------------------------------------------------------------------
以上就是一个简单的代理间参数传递。用RunOnServer方法进行参数传递和Run方法类似。
posted @ 2011-11-02 05:30  hannover  阅读(616)  评论(0编辑  收藏  举报