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

  • Автор темы Автор темы D!m@n
  • Дата начала Дата начала
D

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 он умеет переподписывать только всю базу целиком :)
 
3 - создать програмно админ запрос, который всё сделает :)
 
Код:
noteID$ = notesAdministrationProcess.SignDatabaseWithServerID( server$ , dbfile$ [ , updateonly ] )
 
Call notesDatabase.Sign( [ documentType% ] [ , existingSigsOnly ] [ , nameStr$] [ , nameStrIsNoteID ] )

Сам не пробовал.
 
3 - создать програмно админ запрос, который всё сделает :)
Была такая мысль... Но разве есть AdminRequest для подписания сервером только одного документа дизайна? Если не ошибаюсь, бывает только Sign Database with Server's ID File.
 
выборочно переподписать серверным ID некоторые агенты в некоторых базах.
Все элементы дизайна в конечном счёте специальные документы, так что нужно просто взять нужные доки и подписать.
Ключевые слова: notesNoteCollection.SelectAgents, notesNoteCollection.BuildCollection, notesNoteCollection.GetFirstNoteID/GetNextNoteID, notesDatabase.GetDocumentByID(noteID$), notesDocument.Sign
 
Код:
noteID$ = notesAdministrationProcess.SignDatabaseWithServerID( server$ , dbfile$ [ , updateonly ] )
Я ж говорю - мне не всю базу...

Добавлено:
Call notesDatabase.Sign( [ documentType% ] [ , existingSigsOnly ] [ , nameStr$] [ , nameStrIsNoteID ] )

Сам не пробовал.
Ошибка 4180: Cannot sign notes when running on a server

И в хелпе написано, что нельзя:
This method executes only on a client.
 
Как вариант делай агента (RunOnServer), который обрабатывает ключевые слова указанные nvy.
Я так делал и даже подписывало.
Отказался в пользу notesAdministrationProcess.SignDatabaseWithServerID, у меня не было требования подписывать сервером отдельные элементы.
 
Хочу выборочно переподписать серверным ID некоторые агенты в некоторых базах.
Попробуй через NotesDocument.Sign.
NoteId агентов получай через NotesNoteCollection. Объект NotesDocument для ноты агента через NotesDatabase.GetDocumentById.
 
1.В другую базу-шаблон выносим элементы дизайна, которые должны быть подписаны другой учёткой
2.Подписываем базу-шаблон нужной учёткой.
3.В первой базе для данных элементов(не для всей базы!!!) ставим наследование из созданного шаблона.
4.Обновляем дизайн первой базы.
 
Попробуй через NotesDocument.Sign.
NoteId агентов получай через NotesNoteCollection. Объект NotesDocument для ноты агента через NotesDatabase.GetDocumentById.
+1
Есть про импорт дизайна через dxl. В т.ч. раскрывается тема подписи.
P.S. в статье битая ссылка на lss. Скачать можно
 
Все элементы дизайна в конечном счёте специальные документы, так что нужно просто взять нужные доки и подписать.
Ключевые слова: notesNoteCollection.SelectAgents, notesNoteCollection.BuildCollection, notesNoteCollection.GetFirstNoteID/GetNextNoteID, notesDatabase.GetDocumentByID(noteID$), notesDocument.Sign
А вот это сработало! ;)
Большое спасибо, nvy, и все-все-все, участвовавшие в теме!
 
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab