Войти
 
 
   
 
  
Новости Notes.ру Библиотека Биржа труда Вопрос - ответ Форум Регистрация Поиск О проекте
Разделы
О Notes
Советы
Шаблоны и примеры
Литература
Презентации
 
Всё о задаче AdminP. Часть вторая   Во второй части мы завершаем рассмотрение AdminP. В ней рассмотрены запросы междоменного администрирования и способы управления функциями AdminP с помощью настроек документа сервера, команд консоли сервера, файла Notes.ini и интервалов очистки базы данных. В этой статье предполагается, что вы опытный администратор Domino и прочитали первую часть
О Notes Читать статью
 
Всё о задаче AdminP. Proxy-действия в R5 и Domino 6   Приложение к статье об административном процессе
О Notes Читать статью
 
Всё о задаче AdminP. Часть первая   Перевод классической статьи 2003-его года о задаче административного процесса (AdminP). Очень полезна для понимания работы механизма этой задачи. В первой части статьи описаны компоненты задачи AdminP, как они работают, и как их использование помогает сделать работу администратора Domino проще. Задача AdminP (сакращённо от Administration Process, Административный процесс) работает с базой административных запросов (Administration Requests, admin4.nsf)
О Notes Читать статью
 


Советы

Главная   Библиотека   Советы

Изменение дизайна БД "Administration requests"

Иван Цыбаненко

Серверная задача AdminP
На каждом сервере Domino работает задача AdminP. Задача запускается в процессе загрузки Domino, это определяется переменной ServerTasks в файле настроек Notes.ini. AdminP активизируется через интервалы времени(определяется в секции Administration Process серверного документа в Domino directory) и выполняет команды, помещенные в БД Administration Request. Каждая команда представляет собой документ, в котором хранится псевдокод, который исполняется задачей Administration Process.
Каждый документ содержит набор полей, в том числе и поле ProxyAction. После каждого исполнения на сервере создается ответный документ с результатом исполнения команды (операция выполнена успешно или окончилась неудачей)
AdminP не ограничен одним доменом Notes, так что возможно создание документов cross domain для управления серверами, находящихся в других доменах.

В данном материале демонстрируется пример использования возможностей Domino для решения задач не предусмотренных разработчиками изначально. С помощью AdminP можно создавать почтовые базы в фоновом режиме. Нижеприведенные изменения в БД Administration Request позволят получить возможность создания любых БД по определенным шаблонам.

Форма для создания и редактирования запроса AdminP

Сделать копию формы "AdminRequest"; назвать "AdminRequestEdit"

  • "Отвязать" общее поле ProxyAction и открыть его для редактирования
  • скопировать в клипбоард
  • вставить рядом, получится поле ProxyAction_1
  • удалить из формы поле ProxyAction
  • переименовать ProxyAction_1 => ProxyAction
  • установить тип поля Editable
  • проверить тип поля Dialog list
  • проверить что опция "Refresh fields on keyword change" установлена
    Создать скрытое поле с именем "Form"
    • тип – Computed
    • значение – "AdminRequest"

    В событие формы PostSave поместить следующий код LotusScript:
    Source.Autoreload=False
    Call Source.Document.Sign
    Call Source.Document.Save(True, True)
    Source.Autoreload=True
    Dim w As New NotesUIWorkspace
    Call w.ViewRefresh

    Представление для управления запросами (создания и изменения)
    1. Сделать копию представления "All Requests by Action"; назвать "RequestsCustomization"
    2. Изменить Form formula этого представления на "AdminRequestEdit"
    3. Создать action "Create custom request" с формулой: @Command([Compose]; "AdminRequestEdit")
    4. Для системной action "Edit document" установить опцию "Include action in action bar"

    Корректировка полей формы "AdminRequestEdit" для запроса "Create Mailfile"
    На самом деле, данный Admin request подходит для создания абсолютно любых баз данных, а не только почтовых. По сути он просто создаёт новую БД на указанном сервере, с указанным именем, по указанному шаблону и с указанным пользователем и уровнем его доступа в ACL.

    "Server(s) to perform the action", поле ProxyServer
    • удалить поле ProxyServer
    • над полем ProxyServerDisplay в ту же ячейку таблицы вставить новое поле, назвать его "ProxyServer"
    • установить тип поля ProxyServer в Names, Editable
    • установить параметр Choices поля ProxyServer в "Use address dialog for choices"
    • установить в Security Options параметр "Sign if mailed or saved in section"
    • поместить в Default value поля ProxyServer следующую формулу: @Subset(@DBName; 1)
    • установить Hide formula этих полей так, чтобы в режиме просмотра, печати и копирования показывалось поле ProxyServerDisplay, а в режиме редактировании показывалось поле ProxyServer

    "Name(s) to perform the action on", поле ProxyNameList
    • сменить тип на Editable
    • установить параметр Choices в "Use address dialog for choices"

    "Action requested by", поле ProxyAuthor – без изменений

    "Name of process to perform action", поле ProxyProcess – без изменений

    "Mailserver", поле ProxySourceServer
    • сменить тип на Editable
    • установить параметр Choices в "Use address dialog for choices"

    "Database name", поле ProxyDatabasePath
    • сменить тип на Editable

    "Create full text index", поле ProxyFullTextIndex
    • сменить тип на Editable
    • сменить тип на Radio button
    • установить параметр Border style в "None"
    • установить параметр Number of columns равный "2"
    • поместить в Default value формулу:
    DefaultValue:="0";
    REM "1 – создавать полнотекстовый индекс, 0 – не создавать";
    DefaultValue

    "Mailfile access level", поле ProxyMailfileAccessLevel
    • удалить поле ProxyMailfileAccessLevel
    • переименовать поле ProxyMailfileAccessDisplay => ProxyMailfileAccessLevel
    • изменить его тип на Editable
    • поместить в Default value поля ProxyMailfileAccessLevel следующую формулу:
    REM "Доступ к новой БД для пользователя, указанного в поле "Name(s) to perform the action on" (ProxyNameList)
    0 - manager
    1 – designer
    2 – editor
    ";
    DefaultValue:="0";
    TextValue:=@Text(ProxyMailfileAccessLevel);
    @If(TextValue=""; DefaultValue; TextValue)

    "Mail template name", поле ProxyTextItem1
    • в hide formula добавьте в конец: & @IsNotMember(ProxyAction; "24") Т.е. в конечном счёте hide formula выглядит приблизительно так:ProxyTextItem1="" & @IsNotMember(ProxyAction; "24" : "и др. значения")

    Внимание! Notesnet.ru не несет никакой ответственности за возможный ущерб, связанный с использованием предлагаемого для загрузки примера.
     
      Опубликовано — 06/03/2003 |    

    Мероприятия
    Пресс-релизы
    Биржа труда
    Последнее на форуме
     
    А так же:
    Как удалить профиль?
    16.04.2016 00:08:51
    Скопировать в буфер поле документа
    24.05.2015 08:55:52
    Импорт DXL-описания документов в Lotus Domino. Одноимённые поля
    16.04.2015 16:49:58
     
    © LOGOSPHERE.RU