Lotus Notes - создание сценария создания элемента дизайна - PullRequest
1 голос
/ 08 июня 2009

У меня есть приложение Lotus Notes, которое на самом деле состоит из шаблона со всеми необходимыми формами, представлениями и необходимыми агентами. Также требуется, чтобы некоторые элементы дизайна (пользовательская форма и представление для нашего собственного типа документов) из этого шаблона были скопированы в почтовый шаблон, поэтому после регулярного обновления все пользователи имеют его.

Приложение работает следующим образом: база данных приложения (полученная из предоставленного мной шаблона) создается на сервере Domino. Агент, работающий в этой базе данных, по запросу http создает «пользовательский» документ в почтовой базе данных пользователя.

Затем на стороне клиента пользователь может использовать наше представление для отображения этого документа.

В настоящее время процедура развертывания выглядит следующим образом:

  1. Создайте «основную» базу данных приложения из нашего шаблона.
  2. Заполните некоторые данные, используя формы и представления в этой базе данных (чтобы настроить работу приложения)
  3. Скопируйте пользовательскую форму и просмотрите почтовый шаблон.
  4. Создайте нашу кнопку (для запуска нашего представления и / или формы) в почтовом шаблоне.
  5. После ночного обновления базы данных все пользователи получают пользовательскую форму и представление в своей почтовой базе данных, и они могут использовать кнопку для просмотра наших документов (если есть).

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

Есть идеи, как мне это сделать из NotesScript, JavaScript, Java?

Ответы [ 2 ]

1 голос
/ 09 июня 2009

Попробуйте взглянуть на эти идеи ---> http://www.openntf.org/projects/pmt.nsf/3f2929edba6ef2808625724c00585215/9fe3084cab2f38ad8625754600078af6!OpenDocument

http://www.benpoole.com/80256B44004A7C14/articles/simpledxl

Чтобы избежать некоторых известных проблем DXL, вы можете попробовать экспортировать и импортировать в закодированный двоичный формат.

** Update

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

1 голос
/ 08 июня 2009

Это звучит выполнимо с DXL, и я думаю, что вы можете использовать и LotusScript, и Java для этого.

Что-то вроде этого должно делать это в Java:

public class RenderDesign extends AgentBase {
public void NotesMain() {

    try { 
        Session session = getSession();
        AgentContext agentContext = session.getAgentContext();

        DxlImporter myimporter = session.createDxlImporter();
        try {
            myimporter.setDesignImportOption(myimporter.DXLIMPORTOPTION_REPLACE_ELSE_CREATE);
            myimporter.importDxl(this.getDxl(), agentContext.getCurrentDatabase());
            } 
        catch (Exception e) {
            System.out.println(this.getDxl());
            System.out.println(myimporter.getLog());            
        }

    } catch(Exception e) {
        e.printStackTrace();
    }
}

Тогда просто создайте строку с помощью DXL. Используйте Инструменты -> Утилиты DXL -> Экспортер (или Просмотр ), чтобы проверить элемент дизайна, который вы хотите добавить или отредактировать:

public String getDxl(String agentname, String replicaid) {
    return "<?xml version='1.0' encoding='utf-8'?>"+
            "<view name='(auto-view)'> "+/* ... */"</view>";
}

Обратите внимание, что средство импорта DXL совсем не устойчиво и не допускает ошибок: вы можете вызвать сбой клиента Developer на входе, который является допустимым XML и соответствует DTD. Например, пытаясь установить fieldhint="" в поле. Имейте это в виду при разработке.

...