【问题标题】:Share a LotusScript library between databases在数据库之间共享 LotusScript 库
【发布时间】:2010-02-11 23:49:44
【问题描述】:
是否可以在一个数据库中创建一个 LotusScript 库,然后从另一个数据库访问它?
无需简单地将库复制到需要使用它的每个数据库中。
我想要实现的是一个可以更新库的位置,而不必手动将其复制到正在使用它的每个数据库。我不能使用设计模板,因为使用这个脚本库的数据库都使用不同的设计模板。
我想另一种解决方案是创建一个代理,以便在更新时将库复制到所有数据库。因此,如果有人在此之前做过类似的事情,那么我也想在这里讨论一下。
【问题讨论】:
标签:
shared-libraries
lotus-notes
lotus-domino
lotusscript
【解决方案1】:
【讨论】:
-
我要补充一点,您可能希望使用semantic version 编号系统保留每个脚本库的多个版本。使用库的所有内容都必须使用它的特定版本。然后,您可以升级您的库,而不必担心会破坏使用它的应用程序中的某些内容,因为他们将使用以前的版本。您可以逐个升级应用程序并正确测试一切正常。或者让他们使用旧版本,如果它工作正常。
【解决方案2】:
安德斯很好地回答了这个问题。正如 Anders 已经说过的,不幸的是,Domino 不能在数据库之间共享代码库。所有代码都是自包含的,在这种情况下这是一个限制。
将代理复制到您想要使用它的所有数据库中,然后采用设计继承是分发代理的一种快速简便的方法。
另一种想法是使用单个数据库作为代理存储库,因此如果您需要反复使用同一个代理,它的设计始终在一个数据库中,但您需要设计它以便它可以对您需要更新的所有数据库执行操作。
有效地,仅将每个数据库用作数据源,并且相关代理在一个位置进行操作。这将需要更多的工作,以允许您定义一些额外的配置文档,代理将使用这些配置文档来识别您希望代理在哪些数据库上运行。
这种方法的优点是:
您无需与设计继承抗争。当您拥有复杂的脚本库/设计结构时,它可能会大规模变得混乱,您可能需要购买第三方工具来帮助您完成此操作。
实际上,您可以通过一系列配置文档集中控制哪些数据库得到更新,其中包含一个“活动/非活动”字段,用于标记数据库以进行更新。而不是直接“触摸”代理,这需要您通过启用/禁用代理来弄脏您的手。在一些受到严格控制的公司环境中,您需要不断要求 Notes 管理员为您执行此操作。
您可以对代理进行编码,以便它在每个数据库上运行时在您自己的自定义日志文档中报告活动,并集中存储。
希望这能为您提供一些选择...
【解决方案3】:
您可以在数据库之间共享一个 lotusScript 库。将脚本导出到后缀为 .lss 的文件中,并将其放在 domino 服务器上的 domino 文件夹中。然后,您可以像使用普通 LotusScript 库一样编写“使用“script.lss””。您可以在 domino 文件夹中看到已经有一些库,例如。 lsconst.lss