在数据库之间共享LotusScript库

时间:2010-02-11 23:49:45

标签: shared-libraries lotus-notes lotus-domino lotusscript

是否可以在一个数据库中创建LotusScript库,然后从另一个数据库访问它?

不要简单地将库复制到需要使用它的每个数据库中。

我想要实现的是一个可以更新库的位置,而不必手动将其复制到使用它的每个数据库。我不能使用设计模板,因为使用此脚本库的数据库都使用不同的设计模板。

我想另一种解决方案是创建一个代理,以便在更新时将库复制到所有数据库。因此,如果有人在此之前做过类似的事情,那么我也想在这里谈论它。

3 个答案:

答案 0 :(得分:10)

Lotus Notes中的设计继承不仅适用于数据库级别 - 可以从不同的模板显式继承单个设计元素(例如脚本库)。见Linking individual design elements to a template

如果设置了这样的继承,Domino服务器上的designer任务将自动更新设计元素。为此,必须将模板复制到同一服务器。

您可能希望在发布模板时禁用此继承,以避免在生产环境中出现令人讨厌的意外情况。我刚刚为此创建了一个解决方案:Remove Lotus Notes design element inheritance programatically

答案 1 :(得分:2)

安德斯很好地回答了这个问题。正如Anders所说,不幸的是,Domino无法在数据库之间共享代码库。所有代码都是自包含的,在这种情况下是一个限制。

将代理复制到您要使用它的所有数据库中,然后使用设计继承是分发代理的快捷方式。

另一个想法是,有一个数据库作为代理的存储库,所以如果你需要反复使用同一个代理,它的设计总是在一个数据库中,但你需要设计这样它就可以对你需要更新的所有数据库执行操作。

实际上,仅将每个数据库用作数据源,并在一个位置运行相关代理。这将需要更多的工作,允许您定义一些其他配置文档,代理将使用这些文档来识别您希望代理运行的数据库。

这种方法的优点是:

  • 您无需与设计继承竞争。当你有复杂的脚本库/设计结构时,它可能会大规模乱,你可能需要购买第三方工具来帮助你这样做。

  • 您实际上可以通过一系列配置文档集中控制哪些数据库进行更新,并使用“活动/非活动”字段标记数据库以进行更新。而不是直接“触摸”需要您在启用/禁用代理时弄脏手的代理。在一些受到严格控制的企业环境中,您需要不断要求Notes管理员为您执行此操作。

  • 您可以对代理进行编码,以便在每个数据库上运行时在自己的自定义日志文档中报告活动,并集中存储它。

希望这能为您提供一些选择......

答案 2 :(得分:0)

您可以在数据库之间共享LotusScript库。将脚本导出到后缀为.lss的文件中,并将其放置在domino文件夹中的domino服务器上。然后,您可以像普通LotusScript库一样编写“ use“ script.lss”“。您可以在domino文件夹中看到已经有一些库,例如。 lsconst.lss