Поля Readers

  • Автор темы fvoice
  • Дата начала
F

fvoice

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

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

Medevic

Что это ? :)
Lotus team
10.12.2004
3 346
1
#2
Для: fvoice
Скорее всего, неправильно создаешь поле типа Readers.
Перед сохранением можно вызвать метод NotesDocument.ComputeWithForm. Или по-нормальному создать поле.
 

RAJ

Well-known member
17.01.2007
440
0
#3
Для вашего поля нужно устанавливать программно признак item.IsReaders=True (свойство объекта NotesItem).
 
F

fvoice

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

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

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

Medevic

Что это ? :)
Lotus team
10.12.2004
3 346
1
#5
<!--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 ?
Выложи код.
 
F

fvoice

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

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

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

RAJ

Well-known member
17.01.2007
440
0
#7
У меня была подобная задача с полями Readers.

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

RAJ

Well-known member
17.01.2007
440
0
#8
К тому же было бы интересно посмотреть в свойствах документа описание и содержимое поле Читателя.
 
F

fvoice

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

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

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

Kee_Keekkenen

Well-known member
05.09.2006
639
4
#10
я вот так создавал, для одного человека..
для нескольких вместо Evaluate({@username}) вариант таких пользователей
и больше ничего, никаких заморочек..

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

fvoice

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

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

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

для Kee_Keekkenen

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

IsAvailable

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

Честно говоря, не знаю, из-за чего и какие настройки на это влияют, но просто вот констатирую факт - сталкивался с таким делом :D
 
30.05.2006
1 345
11
#13
Кстати, еще сталкивался с проблемой того, что имеет значение порядок элементов в имени пользователя.
То есть, например, если в ридерсах CN=Vasya Pupkin/O=Org, то этот юзер не может видеть документ, а если CN=Pupkin Vasya/O=Org, то видит нормально.

Честно говоря, не знаю, из-за чего и какие настройки на это влияют, но просто вот констатирую факт - сталкивался с таким делом :D
Имена (при определении доступа) сервер проверяет на точное совпадение (без уч.регистра только). Имя данного юзера берется из его ID, для off-line-юзеров - из Общей АК
 
I

IsAvailable

#14
Для: Constantin A Chervonenko
Ну ведь в Лотусе пользователь определяется и как FirstName + LastName, и как LastName+FirstName (при написании сообщения, например)
А при проверке прав, получается, сервер "правильным" считает такой вид: LastName, FirstName+MiddleName ?
Так?
 
30.05.2006
1 345
11
#15
Для: Constantin A Chervonenko
Ну ведь в Лотусе пользователь определяется и как FirstName + LastName, и как LastName+FirstName (при написании сообщения, например)
А при проверке прав, получается, сервер "правильным" считает такой вид: LastName, FirstName+MiddleName ?
Так?
Определяется - при подборе адресата для письма. Там еще и ShortName есть для этого, и InternetAddress.
А права проверяются исключительно по FullName (есть такое полечко в АК). Именно оно (и только оно) заверено электронной подписью сертификатора. Прочие-же синонимы и алиасы поддаются подделке
 
N
#16
всегда в скриптах нужно работать с каноническими именами пользователей и серверов. для конечного пользователя информацию можно выводить в любом виде, какой захочешь.