Временный доступ на документ

27.11.2012
7
0
#1
Введение.
Есть основной документ. Он открыт для чтения/редактирования некоторым пользователям.
Они на основании его создают другой документ, который доступен для чтения/редактирования другим пользователям.
Внимание!
Как можно дать людям, редактирующим второй документ, временный доступ на редактирование первого документа?
Пытался сделать агента и запустить его под правами админа. Не помогло. Не видят они документ-основание.
P.S. Для тех кто знает СЭД Босс-Референт: Надо на этапе рассмотрения дать рассматривающему возможность создать еще один этап рассмотрения.
 

divankin

Senjor developer
13.08.2009
182
0
#2
Запустите агента на сервере методом RunOnServer. Агент должен быть подписан админом.
 
27.11.2012
7
0
#4
Сделал агента, который должен был дать на исходный документ права Читателя....ну а потом подобный, чтобы их убрать.
Агента, подписанного админом, пускал методом RunOnServer.
Может он неправильно ищет нужный мне документ?

Код агента.

Dim doc As NotesDocument
Dim sess As New NotesSession
Dim db As NotesDatabase

Dim na As NotesAgent
Set na = sess.Currentagent


If na.Parameterdocid = "" Then
Set doc = sess.Documentcontext
Else
Set doc = sess.Currentdatabase.Getdocumentbyid(na.Parameterdocid)
End If

If (doc Is Nothing) Then
Exit Sub
End If

Dim mainProcDoc As notesdocument
Set mainProcDoc = db.GetDocumentByUNID(doc.GetItemValue("MainProcessID")(0))

mainProcDoc.DocReaders = FullTrim(ArrayAppend(mainProcDoc.DocReaders, sess.Username))

Call ws.ViewRefresh
 

hosm

* so what *
18.05.2009
2 442
6
#5
Код:
Set db = sess.Currentdatabase
и убрать Call ws.ViewRefresh

Добавлено: при RunOnServer sess.Username не стоит брать, там имя сервера. в doc нужное имя передавайте. na.Parameterdocid проверьте.
 

hosm

* so what *
18.05.2009
2 442
6
#6
mainProcDoc проверить на Nothing, проверить на наличие юзера в поле докридерс, если нет, то добавить и сохранить документ mainProcDoc .
в общем, ртфм и внимательность :)
 
27.11.2012
7
0
#7
Нубский вопрос: а как запустить дебаг для агента, запускаемого методом RunOnServer?

Добавлено: Нубский вопрос: а как запустить дебаг для агента, запускаемого методом RunOnServer?
 

hosm

* so what *
18.05.2009
2 442
6
#8
Если не знаете как, лучше не мучайтесь пока, поправьте написанное выше и лучше запустите и отладьте по run под пользователем с админской ролью, передавая имя того, кому надо дать доступ. Явно полю Isreaders=True пропишите, если по дизайну приложения поле должно иметь этот тип. Допускаете элементарные ошибки. facepalm. Может, за доработкой стоит обратиться к вендору? Там просто думать надо и немного знать лотус и бр :)
 
27.11.2012
7
0
#9
Если не знаете как, лучше не мучайтесь пока, поправьте написанное выше и лучше запустите и отладьте по run под пользователем с админской ролью, передавая имя того, кому надо дать доступ. Явно полю Isreaders=True пропишите, если по дизайну приложения поле должно иметь этот тип. Допускаете элементарные ошибки. facepalm. Может, за доработкой стоит обратиться к вендору? Там просто думать надо и немного знать лотус и бр :)
Да, я не гуру. Технической документации от вендора нет и не будет. Доработка от вендора длится вечность и стоит как крыло от самолета. Вот и разбираюсь сам. Агенты - вещь для меня новая. Спасибо за подсказку. Сейчас агента локально запущу, проверю.