2010-02-11 146 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管理員爲您執行此操作。

  • 您可以對代理進行編碼,使其在自己的自定義日誌文檔中報告每個數據庫上運行的活動並集中存儲它。

希望這爲您提供了一些選項...