• 代理间的参数传递


    代理間用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方法类似。
  • 相关阅读:
    Babel:JavaScript编译器
    Webpack:前端资源模块化管理和打包工具
    springboot之RocketMq实现
    spingboot之Java邮件发送
    第一模块总结
    嵌入式面试题(一)
    C/C++练习题(三)
    ToolTip特效 JavaScript 盗取厦门人才网的特效
    C#后台无刷新页面弹出alert方法
    复制表及其只复制表数据的区别
  • 原文地址:https://www.cnblogs.com/hannover/p/2232381.html
Copyright © 2020-2023  润新知