在数据库之间共享LotusScript库

问题描述 投票:4回答:3

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

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

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

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

shared-libraries lotus-notes lotus-domino lotusscript
3个回答
10
投票

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

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

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


2
投票

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

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

另一个想法是,有一个单独的数据库作为代理的存储库,所以如果你需要一遍又一遍地重复使用同一个代理,它的设计总是在一个数据库中,但是你需要设计它以便它可以对您需要更新的所有数据库执行操作。

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

这种方法的优点是:

  • 您不需要与设计继承竞争。当您拥有复杂的脚本库/设计结构时,它可能会大规模混乱,您可能需要购买第三方工具来帮助您执行此操作。
  • 实际上,您可以通过一系列配置文档集中控制哪些数据库更新,其中“活动/非活动”字段标记数据库以进行更新。而不是直接“触摸”需要您在启用/禁用代理时弄脏手的代理。在一些受到严格控制的企业环境中,您需要不断要求Notes管理员为您执行此操作。
  • 您可以对代理进行编码,以便在每个数据库上运行时在自己的自定义日志文档中报告活动,并集中存储它。

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


0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.