Private View On First Open In Picklistcollection

Serduko

Well-known member
11.10.2011
170
0
#1
Пытаюсь открыть представление private on first open в NotesUIWorkspace.PickListCollection и выдает ошибку: "Notes error: Index is not to be generated on server". Доступ в ACL открыт. Вероятно надо, что бы представление создалось на локальной машине, подскажите, как сделать это через Lotusscript?
 
A

alexas

#2
:(
Call notesUIDatabase.OpenView( viewName$ [, key$] [, newinstance] [, replaceView] )
Call notesUIView.Close
 

Serduko

Well-known member
11.10.2011
170
0
#3
Возможно ли в фоновом режиме, что бы представление не открывалось у пользователя?
 

Serduko

Well-known member
11.10.2011
170
0
#7
А каким образом лучше определять есть private view у пользователя, с целью создать его, на каком нибудь queryopen event? Имею ввиду если не лезть в локальную базу с представлениями пользователя.
 

savl

Lotus team
28.10.2011
2 136
105
#8
хм... интересно даже стало.. Но зачем?
Если представление есть, то код его и откроет.
Если его нет, то код открытия его же и создаст.
Лишняя проверка.

Добавлено: или я с папкой путаю...
Если путаю с папкой, то проверять надо через:
Код:
Set notesView = notesDatabase.GetView( viewName$ )
Добавлено: НО:
Using getView returns public views and folders and private views and folders that are owned by the effective id running the agent. Private views stored in the desktop are not returned.
 

Serduko

Well-known member
11.10.2011
170
0
#9
хм... интересно даже стало.. Но зачем?
Если представление есть, то код его и откроет.
Если его нет, то код открытия его же и создаст.
Лишняя проверка.

Добавлено: или я с папкой путаю...
Если путаю с папкой, то проверять надо через:
Код:
Set notesView = notesDatabase.GetView( viewName$ )
Добавлено: НО:
Собственно вопрос в начале темы, на Picklistcollection выдает ошибку, поскольку не создается.
 

savl

Lotus team
28.10.2011
2 136
105
#10
на Picklistcollection выдает ошибку, поскольку не создается
Ну логично, pickList только отображает, но не создает.
Нужно предварительно где-то открыть и только потом использовать pickLIst
Варианты открытия в 6-ом сообщении.
 

Serduko

Well-known member
11.10.2011
170
0
#11
Ну логично, pickList только отображает, но не создает.
Нужно предварительно где-то открыть и только потом использовать pickLIst
Варианты открытия в 6-ом сообщении.
По второму кругу :) ? Буду ловить по коду ошибки и открывать, как такой вариант?
 

savl

Lotus team
28.10.2011
2 136
105
#12
Путаница пошла из-за этого:
хм... интересно даже стало.. Но зачем?
Если представление есть, то код его и откроет. Если его нет, то код открытия его же и создаст. Лишняя проверка.
Я писал это на это сообщение:
А каким образом лучше определять есть private view у пользователя, с целью создать его, на каком нибудь queryopen event?
Нет смысла в такой проверке.
Потому что если открывать до вызова pickLIst, то представление либо создастся, либо откроется где-то.

ммм, разве что хотите избежать "залипания" при создании/открытии, когда индексы будут обновляться.
Но если представление существует и долго не открывалось, то при отображении pickLIst будет то же "залипание".
А если оно часто используется, то при открытии и "залипания" не будет
 

Serduko

Well-known member
11.10.2011
170
0
#13
Путаница пошла из-за этого:

Я писал это на это сообщение:

Нет смысла в такой проверке.
Потому что если открывать до вызова pickLIst, то представление либо создастся, либо откроется где-то.

ммм, разве что хотите избежать "залипания" при создании/открытии, когда индексы будут обновляться.
Но если представление существует и долго не открывалось, то при отображении pickLIst будет то же "залипание".
А если оно часто используется, то при открытии и "залипания" не будет
Я хочу вызывать
Call notesUIDatabase.OpenView( viewName$ [, key$] [, newinstance] [, replaceView] )
Call notesUIView.Close
только один раз, поэтому хочу сделать вызов по событию.
 

susinmn

Well-known member
16.10.2007
529
3
#14
А каким образом лучше определять есть private view у пользователя, с целью создать его, на каком нибудь queryopen event? Имею ввиду если не лезть в локальную базу с представлениями пользователя.
Поиграйся с Readers полем у получаемой вью. Например, если поле есть и совпадает с тек. пользователем, то мы получили spofu папку.
 
A

alexas

#15
Поиграйся с Readers полем ............
Не спасет.
Если очень хочется, чтобы view закрывалась там-же, где вызывается PickList, при открытом модальном окне (PickList), можете на Queryopen view сделать Source.Close.
Но это для случая использования этого view только в PickList (если делать "влоб").
Соответственно uiview.Close тогда не нужен.
 

Serduko

Well-known member
11.10.2011
170
0
#16
Не спасет.
Если очень хочется, чтобы view закрывалась там-же, где вызывается PickList, при открытом модальном окне (PickList), можете на Queryopen view сделать Source.Close.
Но это для случая использования этого view только в PickList (если делать "влоб").
Соответственно uiview.Close тогда не нужен.
Спасло, Readers отвечает как надо. С Queryopen плохая идея, никаких привилегий не дает, а если случайно view будет открываться по умолчанию, то базу будет не открыть.
 
A

alexas

#17
Спасло, Readers отвечает как надо....
Конечно, так Вы узнаете, что SPOFU уже есть для этого юзера. Но это не поможет нормально создать SPOFU в логике Вашего интерфейса.
Обычно стараются держать базу "чистой" и не хранить в ней SPOFU без нужды (удаляют все приваты при открытии или закрытии базы и создают заново при необходимости). Это убирает геморрои при возможном изменении дизайна шаблона SPOFU.
Сохранять SPOFU имеет смысл только в случае о-о-чень большого наполнения всегда актуальным содержимым (из-за потери времени на построение индекса), и то спорно. Я создаю SPOFU незаметно для юзера, без лишнего ожидания.
....случайно view будет открываться по умолчанию....
Что-же это за аппликуха такая, где view открываются случайно по умолчанию?! :) Вы управляете приложением, или оно Вами??
А "С Queryopen плохая идея"(с) - это-ж для решения Вашей хотелки. Я так не делаю ;) . Но работать оно будет.
 

Serduko

Well-known member
11.10.2011
170
0
#18
Конечно, так Вы узнаете, что SPOFU уже есть для этого юзера. Но это не поможет нормально создать SPOFU в логике Вашего интерфейса.
Обычно стараются держать базу "чистой" и не хранить в ней SPOFU без нужды (удаляют все приваты при открытии или закрытии базы и создают заново при необходимости). Это убирает геморрои при возможном изменении дизайна шаблона SPOFU.
Сохранять SPOFU имеет смысл только в случае о-о-чень большого наполнения всегда актуальным содержимым (из-за потери времени на построение индекса), и то спорно. Я создаю SPOFU незаметно для юзера, без лишнего ожидания.
Содержимое актуально, поскольку оно изменяется, возможно в далеком будущем понадобится удаление spofu, в связи изменением дизайна, тогда и добавим.
Что-же это за аппликуха такая, где view открываются случайно по умолчанию?! :) Вы управляете приложением, или оно Вами??
А "С Queryopen плохая идея"(с) - это-ж для решения Вашей хотелки. Я так не делаю ;) . Но работать оно будет.
Не понимаю вашего сарказма, вы не терпите возражений, по какой причине? Тем не менее, учет исключений никто не отменял.

Создайте private view на picklistcollection, так что бы ваша "апликуха" вами не управляла, представьте демонстрацию в виде кода или как-то еще, тогда и поговорим. А то у меня ощущение, что мы говорим о разных функционалах, для разных задач.