Форум продуктов IBM Lotus

Общие вопросы => Разработка приложений => Тема начата: Alsodan от 22 Январь 2013, 12:54:44

Название: Временный доступ
Отправлено: Alsodan от 22 Январь 2013, 12:54:44
Введение.
Есть основной документ. Он открыт для чтения/редактирования некоторым пользователям.
Они на основании его создают другой документ, который доступен для чтения/редактирования другим пользователям.
Внимание!
Как можно дать людям, редактирующим второй документ, временный доступ на редактирование первого документа?
Пытался сделать агента и запустить его под правами админа. Не помогло. Не видят они документ-основание.
P.S. Для тех кто знает СЭД Босс-Референт: Надо на этапе рассмотрения дать рассматривающему возможность создать еще один этап рассмотрения.
Название: Временный доступ
Отправлено: ViV от 22 Январь 2013, 14:55:26
Что ваш агент делал?
Название: Временный доступ
Отправлено: Alsodan от 22 Январь 2013, 15:07:42
Должен был найти основной документ и внести в него данные. Однако он не видит основного документа :(
Название: Временный доступ
Отправлено: ViV от 22 Январь 2013, 16:55:57
Как пытались найти?
Название: Временный доступ
Отправлено: Alsodan от 23 Январь 2013, 07:23:43
Искал таким образом

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

В поле MainProcessID - UNID основного документа
Название: Временный доступ
Отправлено: Alsodan от 23 Январь 2013, 13:15:52
Сделал агента, который должен был дать на исходный документ права Читателя....ну а потом подобный, чтобы их убрать.
Агента, подписанного админом, пускал методом 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
Название: Временный доступ
Отправлено: ViV от 24 Январь 2013, 19:27:56
Нужно узнать на каком этапе ошибка.
Посмотрите что содержится в doc.GetItemValue("MainProcessID")(0), корректный ли это UNID.
Название: Временный доступ
Отправлено: Slava от 07 Февраль 2013, 13:17:27
P.S. Для тех кто знает СЭД Босс-Референт: Надо на этапе рассмотрения дать рассматривающему возможность создать еще один этап рассмотрения.
А никак. :-) это приувет от концепции воркфлоу,настройки и т.д. Для смены рассматривающего - регистратору(!) необходимо вернуть документ на предидущую стадию(прием и регистрация) и сменить рассматривающего. Вы бы описали ситуацию подробнее может стоит в маршрут согласования добавить ещё кого?