2

我在一个开发 Java Swing 应用程序的团队中工作,现在我正试图帮助另一个团队将此应用程序集成到 Lotus Notes 中。不幸的是,我对 Notes 了解不多,而且似乎找不到任何与我们正在尝试做的事情相关的文档。

我们要做的是让用户使用从 Notes 传入的一些数据启动我们的应用程序,让用户使用传入的数据,然后当他们准备好保存时,将修改后的数据保存回 Notes 数据库。

我们使用 Notes 代理实现的第一部分——它能够启动我们的应用程序并传入原始数据——问题是保存。在调用启动我们的应用程序之后,代理似乎完成并“死亡”,因此当用户准备保存时,无法获得对会话/数据库的引用。一位 Lotus 开发人员通过在代理中创建一个繁忙的等待循环以在启动应用程序后使其保持活动状态来使其工作 - 但这具有在应用程序打开时阻止任何其他使用 Lotus Notes 的副作用,所以这不是一个真正可以接受的解决方案。

任何人都知道我们正在尝试做的事情是否可行?怎么做?链接到这方面的任何示例/文档?

4

3 回答 3

3

一种选择是让 Notes 代理启动 Java 应用程序并允许 Java 应用程序异步运行;然后它可以直接写入 Notes 数据库(使用 Notes Java API)。您可以将客户端配置为与 Notes 客户端共享凭据,因此身份验证不是问题(或者您可以让 Java 应用程序对 Notes 进行身份验证)。Java API 相当简单——它基本上模仿了 LotusScript 中可用的后端类。如果您需要将结果写回特定文档,您可以将 DocumentUniqueID (docid) 从 Notes 代理传递到 Java 应用程序,然后在 Java 应用程序中使用它来写回。(参见 Database 类中的 GetdocumentByUnid 方法)。

这篇文章有点老了,但我认为仍然相关: http ://www.ibm.com/developerworks/lotus/library/ls-Java_access_pt1/index.html

于 2011-01-05T15:08:03.927 回答
3

您有几个选项可以将数据返回到 Lotus Notes。我认为最好的办法是使用 Java API 调用 Lotus Notes 并重新添加数据。Java API 有一个开放源代码接口,可以让生活更轻松,称为domingo。否则,请参阅有关如何使用 Java API 的 domino 设计器帮助。

以下是我在五分钟内能想到的将数据恢复到 Notes 的所有方法的列表:

  • 使用 COM 或 Java API 调用 Notes 对象和方法(请参阅 Domino Designer 帮助)
  • 使用NotesSQL使用 SQL 命令将数据插入回 Notes。
  • 将 Notes 数据库设置为邮寄数据库并通过电子邮件传递数据
  • 设置一个计划代理以从指定目录读取(让它每分钟或两分钟运行一次),并从文件中导入数据。
  • 如果您使用的是 Domino,您可以通过 URL 的查询字符串传入数据并在代理中处理它。
于 2011-01-05T15:11:58.790 回答
1

Lotus Notes 数据库有一个成熟的 Java API。唯一需要注意的是:API 是围绕 C 核心的一个薄包装器,并且要求对 Notes 对象进行垃圾回收释放。因此,在使用例如 NotesDocument 之后,您需要调用它的 .recycle() 方法,否则会耗尽内存。

于 2011-01-05T15:51:29.047 回答