在lotus notes 6.5.6中我有一个代理使用 agent.Run 或 agent.RunOnServer 执行许多其他代理。所以我需要知道任何二级代理的进展状态。
我尝试在任何子代码中放置一些打印("文件处理在" + cstr(n)+"%") -agent但在莲花笔记进度条中我看不到任何东西。
是否有一种方法或属性允许我显示任何"子代理的进度状态"我是从主要代理人那里跑来的?
感谢' S
答案 0 :(得分:2)
Print()对于使用 agent.Run 启动的代理不起作用,对于使用 agent.RunOnServer 启动的代理也不起作用。文档说明了两者:
用户无法直接与被叫代理进行交互。用户输出 转到Domino日志。
您可以借助内存文档在主代理和子代理之间建立通信。子代理可以定期将当前状态写入文档,主代理可以打印()'他们在NotesTimer类的帮助下。
作为替代方案,您可以使用像this这样的进度条。您可以使用LS2J从LotusScript调用Java类。我没有尝试过,但希望Java swing不算作用户输出"从子代理的角度来看。
答案 1 :(得分:0)
当调用代理等待被叫代理完成时,在其他代理运行时无法让它“执行”任何操作。您可以 - 如Knut所述 - 在您的呼叫代理中启动NotesTimer,在触发器上读取某种“通信” - 文档(在内存文档中不起作用,因为这种可能性在8.5.2中引入,不适用于6.5 )。然后计时器可以“打印”到状态栏。但我不确定,只要代理被“阻止”,状态栏就会更新......你必须尝试。
您还可以让被叫代理“打印”出来:打印将转到服务器控制台,您可以在其中对事件做出反应(events4.nsf)并执行某些操作......
但这似乎是这项任务的开销太多......