Совместное использование библиотеки LotusScript между базами данных - PullRequest
4 голосов
/ 12 февраля 2010

Можно ли создать библиотеку LotusScript в одной базе данных и затем получить к ней доступ из другой базы данных?

Без простого копирования библиотеки в каждую базу данных, которая должна ее использовать.

Чего я хотел бы добиться, так это одного места, где я могу обновлять библиотеку и не нужно вручную копировать ее в каждую базу данных, которая ее использует. Я не могу использовать шаблон дизайна, поскольку базы данных, использующие эту библиотеку сценариев, используют разные шаблоны дизайна.

Полагаю, другим решением было бы создать агента для копирования библиотеки во все базы данных при каждом ее обновлении. Так что, если кто-то делал что-то подобное раньше, я бы тоже хотел об этом.

Ответы [ 3 ]

10 голосов
/ 12 февраля 2010

Наследование дизайна в Lotus Notes не только на уровне базы данных - отдельные элементы дизайна (например, ваша библиотека скриптов) могут быть явно унаследованы от другого шаблона.См. Связывание отдельных элементов дизайна с шаблоном .

При таком наследовании задача designer на сервере Domino автоматически обновит элемент дизайна.Чтобы это работало, шаблоны должны быть реплицированы на один и тот же сервер.

Возможно, вы захотите отключить это наследование при выпуске шаблона, чтобы избежать неприятных сюрпризов в производственной среде.Некоторое время назад я создал решение для этого: Программно удаляет наследование элементов дизайна Lotus Notes .

2 голосов
/ 15 марта 2010

Андерс очень хорошо ответил на вопрос. Как уже сказал Андерс, Domino, к сожалению, не может делить библиотеки кода между базами данных. Весь код самодостаточен, что в данном сценарии является ограничением.

Копирование агента во все базы данных, для которых вы хотите его использовать, а затем использование наследования проекта - это быстрый и простой способ распространения агента.

Альтернативная идея - иметь единую базу данных, которая служит хранилищем агентов, поэтому, если вам нужно многократно использовать один и тот же агент, его дизайн всегда находится в одной базе данных, но вам нужно будет проектировать это так, что он может выполнять операции со всей базой данных, которую нужно обновить.

Эффективно, используя каждую базу данных только как источник данных, и соответствующий агент (ы), работающий из одного места. Это потребует дополнительной работы, которая позволит вам определить некоторые дополнительные документы конфигурации, которые агент (-ы) будет использовать для определения баз данных, на которых вы хотите, чтобы агент работал.

Преимущества этого подхода:

  • Вам не нужно бороться с наследованием дизайна. Это может привести к беспорядку в больших масштабах, когда у вас есть сложные библиотеки скриптов / структуры дизайна, вам, возможно, придется купить сторонние инструменты, чтобы помочь вам сделать это.

  • Вы можете фактически контролировать, какие базы данных обновляются через серию документов конфигурации, централизованно с помощью поля «активный / неактивный», которое помечает базу данных для обновления. Вместо того, чтобы напрямую «прикасаться» к агентам, что требует от вас грязных рук при включении / отключении агента. В некоторых корпоративных средах, которые строго контролируются, вам нужно постоянно просить администратора Notes сделать это за вас.

  • Вы можете закодировать агент так, чтобы он сообщал об активности в ваших собственных пользовательских журнальных документах при его запуске в каждой базе данных, и централизованно сохранять его.

Надеюсь, это даст вам некоторые возможности ...

0 голосов
/ 03 апреля 2019

Вы можете поделиться библиотекой lotusScript между базами данных. экспортируйте скрипт в файл с суффиксом .lss и поместите его на сервер домино в папке домино. Затем вы можете написать "use" script.lss "" как с обычными библиотеками LotusScript. Вы можете увидеть в папке домино уже есть некоторые библиотеки, например. lsconst.lss

...