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

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

D!m@n

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

Хочу выборочно переподписать серверным 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 он умеет переподписывать только всю базу целиком :)
 

ToxaRat

Чёрный маг
Lotus team
06.11.2007
3 226
25
#2
3 - создать програмно админ запрос, который всё сделает :)
 

Omh

Well-Known Member
Lotus team
04.07.2007
2 210
1
#3
Код:
noteID$ = notesAdministrationProcess.SignDatabaseWithServerID( server$ , dbfile$ [ , updateonly ] )
 

Medevic

Что это ? :)
Lotus team
10.12.2004
3 346
2
#4
Call notesDatabase.Sign( [ documentType% ] [ , existingSigsOnly ] [ , nameStr$] [ , nameStrIsNoteID ] )

Сам не пробовал.
 
D

D!m@n

Гость
#5
3 - создать програмно админ запрос, который всё сделает :)
Была такая мысль... Но разве есть AdminRequest для подписания сервером только одного документа дизайна? Если не ошибаюсь, бывает только Sign Database with Server's ID File.
 

nvyush

Well-Known Member
Lotus team
22.04.2009
2 317
0
#6
выборочно переподписать серверным ID некоторые агенты в некоторых базах.
Все элементы дизайна в конечном счёте специальные документы, так что нужно просто взять нужные доки и подписать.
Ключевые слова: notesNoteCollection.SelectAgents, notesNoteCollection.BuildCollection, notesNoteCollection.GetFirstNoteID/GetNextNoteID, notesDatabase.GetDocumentByID(noteID$), notesDocument.Sign
 
D

D!m@n

Гость
#7
Код:
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.
 

Omh

Well-Known Member
Lotus team
04.07.2007
2 210
1
#8
Как вариант делай агента (RunOnServer), который обрабатывает ключевые слова указанные nvy.
Я так делал и даже подписывало.
Отказался в пользу notesAdministrationProcess.SignDatabaseWithServerID, у меня не было требования подписывать сервером отдельные элементы.
 

RAJ

Well-Known Member
17.01.2007
440
0
#10
1.В другую базу-шаблон выносим элементы дизайна, которые должны быть подписаны другой учёткой
2.Подписываем базу-шаблон нужной учёткой.
3.В первой базе для данных элементов(не для всей базы!!!) ставим наследование из созданного шаблона.
4.Обновляем дизайн первой базы.
 
13.03.2009
625
2
#11
Попробуй через NotesDocument.Sign.
NoteId агентов получай через NotesNoteCollection. Объект NotesDocument для ноты агента через NotesDatabase.GetDocumentById.
+1
Есть заметка от Andre Guirard про импорт дизайна через dxl. В т.ч. раскрывается тема подписи.
P.S. в статье битая ссылка на lss. Скачать можно тут
 
D

D!m@n

Гость
#12
Все элементы дизайна в конечном счёте специальные документы, так что нужно просто взять нужные доки и подписать.
Ключевые слова: notesNoteCollection.SelectAgents, notesNoteCollection.BuildCollection, notesNoteCollection.GetFirstNoteID/GetNextNoteID, notesDatabase.GetDocumentByID(noteID$), notesDocument.Sign
А вот это сработало! ;)
Большое спасибо, nvy, и все-все-все, участвовавшие в теме!