启动后Java代理未收到更新

时间:2014-07-25 15:44:42

标签: lotus-notes lotus-domino lotusscript lotus-formula lotus-designer

我使用公式代码调用Java代理:

@Command([RunAgent]; "My Agent");

代理正确运行并读取其参数。代理仍在运行时,某些文档可能会更改。代理程序看不到更改并继续读取旧值。具体来说,处理可能会被取消,所以我试图告诉我的代理人停止。我这样做是通过更改我专门用于将参数传递给代理的文档中的值来实现的:

Call doc.ReplaceItemValue("Pause","True")
Call doc.Save(True, False)

这是代理人所做的事情:

 Session session = getSession();
 AgentContext agentContext = session.getAgentContext();
 Database db = agentContext.getCurrentDatabase();
'Reload the document with the parameters
 paramDoc = db.getDocumentByID(paramDoc.getNoteID());

但代理只能看到默认值。它似乎有一个数据库的图像,就像它在调用它时一样。

有关如何通知代理有关新值或暂停/取消其主题的任何线索?

2 个答案:

答案 0 :(得分:2)

为了读取当前值(discard cache),请使用:

noteid = paramDoc.getNoteID()
Delete paramDoc
paramDoc = db.getDocumentByID(noteid);

嗯,这是针对LotusScript的 - 您在代理中使用Java。所以我猜它会被编辑(包括nempoBu4提出的澄清):

String noteid = paramDoc.getNoteID();
paramDoc.recycle();
paramDoc = db.getDocumentByID(noteid);
//Check the new value

答案 1 :(得分:0)

查看NotesDocument类的Refresh方法。您需要在检查代理中的值之前调用它,以获取任何更新的值。