Lotus notes 在后台运行的代理更改文档时重新加载文档

Lotus notes 在后台运行的代理更改文档时重新加载文档,lotus-notes,lotus-domino,lotusscript,Lotus Notes,Lotus Domino,Lotusscript,Lotus脚本调用Java代理并在内存文档中向其传递参数。代理在共享文档的属性中执行一些计算并报告其进度。表单上的计时器定期检查表示文档中进度的值,并相应地更新UI 代理人在取得一些进展后说: doc.replaceItemValue("Percent", String.valueOf(percent)); doc.save(true, false); 窗体上的计时器会定期加载文档,并尝试如下方式读取值: Set doc = db.GetDocumentByID(parD

Lotus脚本调用Java代理并在内存文档中向其传递参数。代理在共享文档的属性中执行一些计算并报告其进度。表单上的计时器定期检查表示文档中进度的值,并相应地更新UI

代理人在取得一些进展后说:

doc.replaceItemValue("Percent", String.valueOf(percent));           
doc.save(true, false);
窗体上的计时器会定期加载文档,并尝试如下方式读取值:

Set doc = db.GetDocumentByID(parDocId)
percent = doc.getItemValue("Percent")(0)
Call    uidoc.FieldSetText("Percent", percent)
问题是,在代理完成处理之前,计时器不会读取代理所做的更改。因此,GUI在100%最终出现之前不会更新

我想知道是否有更好的方法来做到这一点


我试图让这些组件通过环境变量进行通信,但我不希望使用这些受限操作。

您的Java代理是否已启用后台客户端线程属性?这是另一个问题。我启用了它,但它没有真正线程代理,所以我写了自己的线程!如果从UI调用代理时没有此属性,则UI将被阻止,并等待代理完成其工作。作为UI一部分的计时器也被阻止。我刚刚尝试启用此属性,代理现在在后台工作,但值未被更新。请尝试启用此属性,然后像我写的那样在计时器中重新打开数据库。