我可以通过客户端JS访问Notes文档/集合吗?

时间:2012-12-03 15:50:27

标签: javascript client-side lotus-notes xpages lotusscript

我想知道是否可以通过Xpages中的客户端脚本处理笔记视图和文档集合?

到目前为止的故事....我正在建立一个人力资源系统,包括一个完整的缺席部分(假期,疾病,其他缺席等)。我在Notes客户端编写了一个按钮,用于创建一个Excel电子表格,显示当前用户根据缺勤文档(getview,getalldocumentsbykey进入集合)过去12个月缺勤的日历。它使用每个文档中的各种字段(包含多值字段)来循环集合,以计算缺失长度,完整/半天等,并在工作表上以不同颜色标记它们,并使用超链接访问文档。

它还可以计算Bradford Factor评级等其他内容,并围绕用户工作日进行计算。

Anywho,我一直被要求让整个系统在浏览器中工作,不再需要Notes客户端,所以....回到原来的问题,我需要能够获得一系列文档从笔记视图通过密钥,然后我可以通过客户端javascript访问该字段。

这可能吗?如果需要,我可以提供更多信息......

4 个答案:

答案 0 :(得分:1)

您是否考虑过Notes Browser Plugin?它应该允许您通过浏览器运行基于Notes的应用程序而无需修改代码。

Here is a write up about it

答案 1 :(得分:1)

您可以从客户端JavaScript vith Java和CORBA访问所有Domino对象。你只需要一个小的applet,它将Session返回给javascript。以下是Designer帮助的说明:

http://www-12.lotus.com/ldd/doc/domino_notes/rnext/help6_designer.nsf/9/0d05bb3cec358f7085256c54004bdbff

然而,正如Per建议的那样,现在通常使用XPage中的客户端和服务器端Javascript的组合而不是CORBA。 Domino Data Service是从服务器获取数据的最新方式(例如)客户端javascript。

您可能还想查看Apache POI,您可以在服务器端创建Excel文件。 ActiveX只适用于IE,但也有插件可以让它在其他浏览器上运行。

修改

我通常使用“客户端和服务器端Javascript的组合”来在客户端使用dojo.xhrGet(或xhrPost)。在服务器上,我有一个XPage(早期代理),它收集数据并以JSON格式返回。

  • PANU

答案 2 :(得分:1)

编辑强调& ReadViewEntries并添加细节

纯粹在浏览器端完成它可能最好通过使用& ReadViewEntries URL命令获取DXL或JSON,然后编写Javascript来处理数据并在本地执行等效的CreateObject调用。您可以找到& ReadViewEntries here的文档。 (@Panu已经提到了DDS,这也是一个好主意。)

或者查看here以获取一些示例代码,该代码显示了一种技术,即使用LotusScript编写的Domino Web代理可以使用该技术创建将使用内容类型标头发送到浏览器的数据,该标头会导致它被打开在Excel中。我还没有验证这个特殊的代码,但我已经看到了对该技术的其他参考。这个特殊的代码可能没有给你你想要的控制权 - 例如颜色和链接,但我认为也可以用xlsx格式实际生成数据并以相似的方式发送它。

答案 3 :(得分:1)

我认为你应该选择REST。在Domino中,它可以提供JSON格式的视图/文档中的数据,您可以在本机中使用客户端JavaScript。 有关详细信息,请尝试搜索Google和ddwiki,例如this tutorial video