2010-02-11 144 views
4

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

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

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

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

回答

10

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

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

您可能想要在释放模板时禁用此继承,以避免在生产环境中出现令人讨厌的意外。前段时间我为此创建了一个解决方案:Remove Lotus Notes design element inheritance programatically

+0

我想补充一点,你可能要保持每个脚本库的多个版本,使用[语义版本(http://semver.org )编号系统。使用库的一切都必须使用它的特定版本。然后,您可以升级您的库,而不用担心在使用它的应用程序中会破坏某些内容,他们会使用以前的版本。您可以逐一升级应用程序并正确测试一切正常。或者让它们使用旧版本,如果它工作正常。 – iconoclast 2013-04-12 14:53:00

2

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

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

另一种想法是将单个数据库用作代理的存储库,因此如果您需要反复使用同一个代理,则它的设计始终在一个数据库中,但您需要设计它,以便它可以在您需要更新的所有数据库上执行操作。

实际上,仅使用每个数据库作为数据源,以及从一个位置运行的相关代理。它需要一些更多的工作,这将允许你定义一些额外的配置文件,代理将使用它来识别你希望代理运行的数据库。

这种方法的优点是:

  • 你并不需要设计继承抗衡。当你有复杂的脚本库/设计结构时,它可能会大规模混乱,你可能不得不购买第三方工具来帮助你做到这一点。

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

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

希望这为您提供了一些选项...