View Selection И @environment

Serduko

Well-Known Member
11.10.2011
170
0
#1
Пробовал данный совет:

http://www.notesnet.ru/nn/notesnet.nsf/3a6...ent#Environment

Тем не менее представление не хочет видеть глобальную переменную (переменная на месте, проверено). Кто нибудь пробовал такой вариант на 8.5.3? Есть какие подводные камни?
 

duchan

Well-Known Member
20.09.2006
108
3
#2
Все работает.
1. проверьте а есть ли переменная в notes.ini сервера
2. есть ли у нее префикс $ (@Environment( variable ) читает только "пользовательские" переменные, т.е. добавляет к ним $ спереди)
3. если вьюшка серверная ее надо "ребилдить" после внесения нового значения на сервере (lo updall FilePath -R -T ViewName), для клиентских (локальных) "жать" Shift+F9

Увлекаться не стоит - применение (моё мнение) - константы, которые могут меняться в зависимости от сервера для разных реплик одной базы, либо же это тиражируемое приложение и таким образом можно "кастамизировать" некоторые частные параметры.
 

Serduko

Well-Known Member
11.10.2011
170
0
#3
Нужна ли серверная переменная notes.ini, если я использую только клиентскую View(Private on first use)?
На локальной машине переменная есть в notes.ini и прекрасно ловится на @ формулах. View настроено и открыто через Shift+F9 (в дизайне соотвественно создалась локальная). Использую такую формулу отбора view - SELECT @Text(@DocumentUniqueID)=@Environment("Test"), при ручном вводе типа SELECT @Text(@DocumentUniqueID)="значениеUNID" все работает. Возможно все же, ошибка в настроках view, но какая?
 

duchan

Well-Known Member
20.09.2006
108
3
#4
C локальными вьюшками, если честно, не экспериментировал, но мне кажется что должно всё работать.

После открытия вьюшки, жали Shift-F9?
Если написать простой агент с @Prompt([ok];"";@Environment("Test")) что он выведет?
Попробуйте не с @DocumentUniqueID, а например, дату создания и @Today в Environment.
 

Serduko

Well-Known Member
11.10.2011
170
0
#5
Нажимал Shift-F9, проверял, view в дизайнере, появлялась.
Агент сразу писал, проверял, бралась без проблем.
Пробовал и менять вид данных, не помогает.
 

ToxaRat

Чёрный маг
Lotus team
06.11.2007
3 226
25
#6
а если не секрет зачем такие сложности то?
не проще ли взять вид и программно задать ему нужный селект?
 

Eugen

Well-Known Member
22.03.2012
177
0
#9
День добрый.
Похожая ситуация - пытаюсь создать локальную вьюху, в которую должны отбираться доки по одной из переменных окружения. Агент, на кнопке отрабатывает правильно, Shift+F9 - ничего не меняет. Что еще можно попробовать?
Еще такой вопрос - при создании вьюхи можно выбрать Shared, private on first use или Shared, desktop private on first use? в чем разница? У меня не пашет ни один, ни другой. Версия 8.5.2.
 

nvyush

Well-Known Member
Lotus team
22.04.2009
2 317
0
#10
Еще такой вопрос - при создании вьюхи можно выбрать Shared, private on first use или Shared, desktop private on first use? в чем разница?
SDPOFU создаётся локально, на клиентском рабочем месте, емнип, в базе desctop#.ndk (удаляется, если удалить ярлык базы из рабочей области), SPOFU — в самой базе, если есть разрешение на создание личных папок в ACL, если разрешения нет, то создаётся SDPOFU. К SPOFU можно обращаться на LS, к SDPOFU — нет (по крайней мере напрямую). В обеих можно использовать @UserName.

Добавлено
Что еще можно попробовать?
Попробуйте посмотреть, какое значение переменной окружения в формуле отбора. Добавьте в начало формулы отбора строку типа
Код:
FIELD TestEnvirnment := @Environment("Имя переменной");
и колонку с полем TestEnvirnment
 

iosif88

Well-Known Member
14.10.2009
97
1
#11
Всем доброго времени суток.
У кого нибудь получилось использовать @Environment в "Shared, desktop private on first use" view?

Пытаюсь решить следующую задачу.

В основном документе (Заявка) есть поле филиал, которое ссылается на справочник "Филиалы".
В справочном доке филиала указываются пользователи этого филиала.

Требуется во вьюхе показывать только документы относящиеся к филиалу данного пользователя.
 

nvyush

Well-Known Member
Lotus team
22.04.2009
2 317
0
#12
Категоризованное по полю "Филиалы" представление + @SetViewInfo или Show single category.
 

iosif88

Well-Known Member
14.10.2009
97
1
#13
Категоризованное по полю "Филиалы" представление + @SetViewInfo или Show single category.
Требуется сначала найти нужный филиал по @UserName.

Поэтому и пытался найти в lotus script на Initialize вьюхи нужный филиал по текущему пользователю и записать номер найденного филала в переменную окружения.
проблема в том что не работает считывание из переменной окружения во view selection (видимо он пытается считывать из notes.ini сервера а не с клиентской машины)

view - "Shared, desktop private on first use"

Branch:=@Environment("BranchNum");
SELECT Form = "Request" & Filial=Branch
 

nvyush

Well-Known Member
Lotus team
22.04.2009
2 317
0
#15
Я нечто подобное делал на обычном категоризованном представлении с @SetViewInfo в PostOpen
 

iosif88

Well-Known Member
14.10.2009
97
1
#16
Я нечто подобное делал на обычном категоризованном представлении с @SetViewInfo в PostOpen
Без категоризованного представления никак?

Т.е. никак не получиться сделать что то подобное динамического select -a в обычной вьюхе?

Перепробовал @Environment, @GetProfileField ни то ни другое в формулах отбора не работает.

А нельзя в приватной вьюхе изменять формулу отбора из lotus script ?

т.е на открытие приватного представления что -то типа такого:

formula = "SELECT Form ='Request' & Filial= "+Branch
Set uiview = ws.CurrentView
Set view = uiview.View
'или
Set view = session.CurrentDatabase.GetView("MyPrivateView") '??????????

view.SelectionFormula = formula
 

nvyush

Well-Known Member
Lotus team
22.04.2009
2 317
0
#17
А нельзя в приватной вьюхе изменять формулу отбора из lotus script ?
Обычным способом до приватной десктопной из ЛС не достучаться, db.GetView её "не видит". Она сохраняется то ли в cache.ndk, то ли в desktop#.ndk. Когда-то давно натыкался на способ, но не помню где и это очень нештатно.
 

iosif88

Well-Known Member
14.10.2009
97
1
#18
Обычным способом до приватной десктопной из ЛС не достучаться, db.GetView её "не видит". Она сохраняется то ли в cache.ndk, то ли в desktop#.ndk. Когда-то давно натыкался на способ, но не помню где и это очень нештатно.
Можно ли прочитать что то внешнее из формулы отбора приватной вьюв ?
например получить значение какого либо поля другого документа? (альтернатива @Environment для того чтобы передать из query open в формулу отбора значение переменной )