【发布时间】:2015-07-28 05:35:08
【问题描述】:
我编写了一个简单的代理程序来获取 unprocessedDocuments() 和 updateprocessedDoc 的计数。
public class JavaAgent extends AgentBase {
public void NotesMain() {
FileWriter fw = null;
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
DocumentCollection dc = agentContext.getUnprocessedDocuments();
Document doc = dc.getFirstDocument();
System.out.println(dc.getCount());
while(doc!= null){
agentContext.updateProcessedDoc(doc);
doc = dc.getNextDocument();
}
} catch(Exception e) {
e.printStackTrace();
}
}
}
我在 Lotus Notes 客户端中编写了这个代理程序,它运行良好。现在我想以编程方式将此代理添加到其他 Lotus 机器。
我有一个代码来列出 lotus notes 客户端中的所有代理,如果我的代理不存在,那么我需要将此代理添加到他们的机器中。此代码在外部运行,而不是在 Lotus 客户端内部。那就是解决方案不应该扩展AgentBase,它会扩展NOtesThread。
请建议我,如何实现这一点。 假设在不涉及管理员的情况下添加此代理。
【问题讨论】:
-
您不涉及管理员的原因是什么?我想不出办法,但原则上我会说,在没有管理员参与的情况下,不应允许任何人向用户客户端添加代码。管理员负责维护 Lotus Notes 环境的安全性。
-
你把我弄糊涂了。 Domino 代理是在数据库中编写的,而不是直接在客户端上。您在哪个数据库中编写了此代理?也许用户邮件数据库?也许是用户本地的names.nsf?也许在别的地方。根据编写位置的不同,有不同的方法可以将代码分发给其他用户。
-
这个代理写入用户的邮件数据库中。
-
这是在不同机器上测试我们的代码所必需的。这是一种概念证明。有两种方法,要么转到每个用户并手动将代理添加到他们的数据库中,要么以编程方式将代理添加到用户机器中。在任何一种情况下,都是在用户同意的情况下完成的。对于这个小型 PoC,我们不想让管理员参与进来。
-
将此代理添加到邮件数据库模板,并使用此模板刷新用户邮件数据库的设计。
标签: lotus-notes lotus