Переподписать агент на Ls

Тема в разделе "Lotus - Программирование", создана пользователем D!m@n, 25 фев 2011.

  1. D!m@n

    D!m@n Гость

    Добрый день, уважаемые соучастники!

    Хочу выборочно переподписать серверным ID некоторые агенты в некоторых базах.
    Вариантов вижу два:
    1. административный (он же скучный, он же запасной) - сесть за консоль сервера, и в дизайнере под серверным ID переподписать нужные агенты;
    2. программный (он же интересный) - серверным агентом, работающим on behalf of Server, переподписать нужные агенты с помощью метода NotesAgent.Save.

    Ессно, пошел по п. 2 - сделал серверного агента, работает on behalf of server, runtime security level у него 3-ий, привилегии на подписание таких агентов на сервере у меня есть.
    Агент выполняется, ошибок никаких не выдает, одна беда - вызов метода NotesAgent.Save не переподписывает агент :)

    Буду рад любым советам!

    P.S. Вариант использовать инструмент "Sign" в Lotus Domino Administrator не предлагайте, ибо серверным ID он умеет переподписывать только всю базу целиком :)
     
  2. ToxaRat

    ToxaRat Чёрный маг
    Lotus team

    Регистрация:
    6 ноя 2007
    Сообщения:
    3.046
    Симпатии:
    18
    3 - создать програмно админ запрос, который всё сделает :)
     
  3. Omh

    Omh Lotus team
    Lotus team

    Регистрация:
    4 июл 2007
    Сообщения:
    2.210
    Симпатии:
    0
    Код (Text):
    noteID$ = notesAdministrationProcess.SignDatabaseWithServerID( server$ , dbfile$ [ , updateonly ] )
     
  4. Medevic

    Medevic Что это ? :)
    Lotus team

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    Call notesDatabase.Sign( [ documentType% ] [ , existingSigsOnly ] [ , nameStr$] [ , nameStrIsNoteID ] )

    Сам не пробовал.
     
  5. D!m@n

    D!m@n Гость

    Была такая мысль... Но разве есть AdminRequest для подписания сервером только одного документа дизайна? Если не ошибаюсь, бывает только Sign Database with Server's ID File.
     
  6. nvyush

    nvyush Lotus team
    Lotus team

    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    Все элементы дизайна в конечном счёте специальные документы, так что нужно просто взять нужные доки и подписать.
    Ключевые слова: notesNoteCollection.SelectAgents, notesNoteCollection.BuildCollection, notesNoteCollection.GetFirstNoteID/GetNextNoteID, notesDatabase.GetDocumentByID(noteID$), notesDocument.Sign
     
  7. D!m@n

    D!m@n Гость

    Я ж говорю - мне не всю базу...

    Добавлено:
    Ошибка 4180: Cannot sign notes when running on a server

    И в хелпе написано, что нельзя:
     
  8. Omh

    Omh Lotus team
    Lotus team

    Регистрация:
    4 июл 2007
    Сообщения:
    2.210
    Симпатии:
    0
    Как вариант делай агента (RunOnServer), который обрабатывает ключевые слова указанные nvy.
    Я так делал и даже подписывало.
    Отказался в пользу notesAdministrationProcess.SignDatabaseWithServerID, у меня не было требования подписывать сервером отдельные элементы.
     
  9. TIA

    TIA :-)
    Lotus team

    Регистрация:
    15 май 2009
    Сообщения:
    790
    Симпатии:
    0
    Попробуй через NotesDocument.Sign.
    NoteId агентов получай через NotesNoteCollection. Объект NotesDocument для ноты агента через NotesDatabase.GetDocumentById.
     
  10. RAJ

    RAJ Well-Known Member

    Регистрация:
    17 янв 2007
    Сообщения:
    440
    Симпатии:
    0
    1.В другую базу-шаблон выносим элементы дизайна, которые должны быть подписаны другой учёткой
    2.Подписываем базу-шаблон нужной учёткой.
    3.В первой базе для данных элементов(не для всей базы!!!) ставим наследование из созданного шаблона.
    4.Обновляем дизайн первой базы.
     
  11. turumbay

    Регистрация:
    13 мар 2009
    Сообщения:
    625
    Симпатии:
    2
    +1
    Есть заметка от Andre Guirard про импорт дизайна через dxl. В т.ч. раскрывается тема подписи.
    P.S. в статье битая ссылка на lss. Скачать можно тут
     
  12. D!m@n

    D!m@n Гость

    А вот это сработало! ;)
    Большое спасибо, nvy, и все-все-все, участвовавшие в теме!
     
Загрузка...

Поделиться этой страницей