Поля Readers

Тема в разделе "Lotus - Программирование", создана пользователем fvoice, 2 фев 2007.

  1. fvoice

    fvoice Гость

    Есть документ, содержащий несколько полей Readers и Authors. После создания некоторых документов, в одно из полей Readers этого документа заноситься имя пользователя, но он(этот пользователь) все равно не видит этот документ!
    Проблема решается открытием этого документа, тем кто его видит, и его пересохранением.
    Сам документ создается и сохраняется на скриптах.
    Если в скрипте создания документа использовать что-то типа uidoc.Save все нормально, но проблема в том что документ от редактирования в UI защищен в событиях Querymodechange и PostOpen.

    Подскажите пожалуйста, в чем может быть дело, можно ли программно созданный документ без его обновления в UI так что бы поле Readers нормально обрабатывалось?
     
  2. Medevic

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

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    Для: fvoice
    Скорее всего, неправильно создаешь поле типа Readers.
    Перед сохранением можно вызвать метод NotesDocument.ComputeWithForm. Или по-нормальному создать поле.
     
  3. RAJ

    RAJ Well-Known Member

    Регистрация:
    17 янв 2007
    Сообщения:
    440
    Симпатии:
    0
    Для вашего поля нужно устанавливать программно признак item.IsReaders=True (свойство объекта NotesItem).
     
  4. fvoice

    fvoice Гость

    Поле есть на форме, свойства заданы, обращаюсь следующим образом:

    Код (Text):
    set item = GetFirstItem("Readers")
    call item.AppendToTextList("...")
    К сожалению ComputeWithForm не помогает :( , что значит создать поле по нормальному?
    Set item = New NotesItem... ведь удалит все предидущие его значения...

    Свойство IsReaders и Is Names уже равны true...
     
  5. Medevic

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

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    <!--QuoteBegin-fvoice+2:02:2007, 13:58 -->
    <span class="vbquote">(fvoice @ 2:02:2007, 13:58 )</span><!--QuoteEBegin-->Сам документ создается и сохраняется на скриптах.
    [snapback]54831" rel="nofollow" target="_blank[/snapback]​
    [/quote]
    Т.е. создаешь документ в бэк-энде. Типы полей на форме при этом не имеют значения. Как создаются поля типа Readers ?
    Выложи код.
     
  6. fvoice

    fvoice Гость

    Пробую так:
    Код (Text):
    Set item = doc.GetFirstItem("AnotherReaders")
    Set item = New NotesItem(doc,"AnotherReaders",item.Values,READERS)
    item.IsReaders = True
    Call item.AppendToTextList(answer.NextSigner(0))
    и вдобавок еще:

    Код (Text):
    flag = doc.ComputeWithForm( True, False )
    if flag = true then
    call doc.Save(false,false)
    Ничего не меняется, хотя в другой БД прекрасно работает конструкция типа:

    Код (Text):
    Set item = doc.GetFirstItem("AnotherReaders")
    Call item.AppendToTextList(answer.NextSigner(0))
     
  7. RAJ

    RAJ Well-Known Member

    Регистрация:
    17 янв 2007
    Сообщения:
    440
    Симпатии:
    0
    У меня была подобная задача с полями Readers.

    И я столкнулся с проблемой, вроде добавляю юзера, а он ничего не видит.
    Проблема была в том, что юзера пихал не в иерархическом виде("CN=user/OU=orgunit/O=org").
    Когда это исправил, проблема доступа исчезла
     
  8. RAJ

    RAJ Well-Known Member

    Регистрация:
    17 янв 2007
    Сообщения:
    440
    Симпатии:
    0
    К тому же было бы интересно посмотреть в свойствах документа описание и содержимое поле Читателя.
     
  9. fvoice

    fvoice Гость

    Почему здесь нет рыдающего смайла? :(

    Где то осенью обращался сюда с вопросом, то же поля авторов и ридеров, Medevic мне тогда серьезно помог, но я теперь вспомнил, что он тогда говорил, что в эти поля надо заносить имена в виде"CN=user/OU=orgunit/O=org", а я... эх дырявая голова :D извините в общем.

    Большое спасибо Medevic и RAJ!
     
  10. Kee_Keekkenen

    Kee_Keekkenen Well-Known Member

    Регистрация:
    5 сен 2006
    Сообщения:
    616
    Симпатии:
    4
    я вот так создавал, для одного человека..
    для нескольких вместо Evaluate({@username}) вариант таких пользователей
    и больше ничего, никаких заморочек..

    Код (Text):
    Dim authorsField As New NotesItem(newDoc, FIELD_AUTHORS,Evaluate({@username}), Authors)
     
  11. fvoice

    fvoice Гость

    Еще один вопросик на засыпку:

    Значит ли все вышеизложенное, что когда документ сохраняется в UI, что Lotus как то преобразует значения полей ридеров и авторов?

    И еще: в др. БД как я и говорил все работает и без этой формы записи "CN=user/OU=orgunit/O=org", но там имя записывается и в автора и в ридера в формате Vasya Pupkin/ibm, как так может быть?

    для Kee_Keekkenen

    @UserName как раз и возвращает имя пользователя в канонической форме :(
     
  12. IsAvailable

    IsAvailable Гость

    Кстати, еще сталкивался с проблемой того, что имеет значение порядок элементов в имени пользователя.
    То есть, например, если в ридерсах CN=Vasya Pupkin/O=Org, то этот юзер не может видеть документ, а если CN=Pupkin Vasya/O=Org, то видит нормально.

    Честно говоря, не знаю, из-за чего и какие настройки на это влияют, но просто вот констатирую факт - сталкивался с таким делом :D
     
  13. Constantin A Chervonenko

    Constantin A Chervonenko Well-Known Member

    Регистрация:
    30 май 2006
    Сообщения:
    1.288
    Симпатии:
    0
    Имена (при определении доступа) сервер проверяет на точное совпадение (без уч.регистра только). Имя данного юзера берется из его ID, для off-line-юзеров - из Общей АК
     
  14. IsAvailable

    IsAvailable Гость

    Для: Constantin A Chervonenko
    Ну ведь в Лотусе пользователь определяется и как FirstName + LastName, и как LastName+FirstName (при написании сообщения, например)
    А при проверке прав, получается, сервер "правильным" считает такой вид: LastName, FirstName+MiddleName ?
    Так?
     
  15. Constantin A Chervonenko

    Constantin A Chervonenko Well-Known Member

    Регистрация:
    30 май 2006
    Сообщения:
    1.288
    Симпатии:
    0
    Определяется - при подборе адресата для письма. Там еще и ShortName есть для этого, и InternetAddress.
    А права проверяются исключительно по FullName (есть такое полечко в АК). Именно оно (и только оно) заверено электронной подписью сертификатора. Прочие-же синонимы и алиасы поддаются подделке
     
  16. nor

    nor Гость

    всегда в скриптах нужно работать с каноническими именами пользователей и серверов. для конечного пользователя информацию можно выводить в любом виде, какой захочешь.
     
  17. IsAvailable

    IsAvailable Гость

    Для: Constantin A Chervonenko
    Понятно. Спасибо.
     
Загрузка...

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