• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

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

    Запись на курс до 25 апреля. Получить промодоступ ...

Программное Удаление Личного Вида Для Пересоздания

  • Автор темы Mikle77
  • Дата начала
M

Mikle77

Добрый день Всем !

Lotus 7.02

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

Это виды типа Общие-частные при первом использовании.

НО если пользователь через меню - Действия-Вид- удалить вид удалит такой вид то сразу вид сам пересоздается и в нем все корректно обновлено и все документы присутствуют.


Как сделать так что бы такие виды корректно обновлялись ?

Может как вариант сделать кнопку в виде пользователям "Обновить вид" - по которой будет удалятся частный вид и тогда автоматически создастся новый обновленный или вообще на открытие вида код повесить удаления частного вида ? (правда в этом случае не нашел как можно в скрипте удалять именно частный вид пользователя).
 
N

nvyush

Личные серверные представления пользователя можно получить перебором коллекции представлений БД NotesDatabase.Views и анализом их свойств Readers и IsPrivate, удалять методом NotesView.Remove. Десктопные личные представления без "танцев с бубном" удалить проблематично, где-то проскакивала информация, как это можно сделать, поищите.

Добавлено
Про удаление SPOFU:

SDPOFU нужно удалять в desktop6.ndk

Также можно попробовать использовать @UpdateViewDesign(VIEWNAME_DESKTOP; VIEWNAME_TEMPLATE);
 
A

Anatoly

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

Добавлено:
Также можно попробовать использовать @UpdateViewDesign(VIEWNAME_DESKTOP; VIEWNAME_TEMPLATE);
Что-то у меня в хелпе (7.0.3) такого не находится...
 
A

Anatoly

Для обновления дизайна Private видов нужно сделать вид-шаблон и в database resources на событие, например, postopen, поставить
@IfError(@UpdateViewDesign( "TemplateView"; "PrivateView"); "");

Поробовал, ничего не происходит.
"TemplateView" и "PrivateView", - по идее одно и то же имя?

Агент, позволяющий к выбранным папкам применить изменения дизайна в "шаблоне"
SELECT @All;
@UpdateViewDesign(@PickList( [Folders] ; @DbName);"TemplateFolder")

Через агента то же что-то...
Выводит список папок, выбираю нужную - ноль
 
A

Anatoly

Тогда непонятно.
1) Я создал SPOFU папку с алиасом "pf.AdvUnit"
2) Пользователь при первом открытии создает в базе личную папку с таким же алиасом.

Причем личная папка создается с запретом на изменение дизайна, приходится снимать этот признак. Но не суть.
Алиас - один.

Когда я создал рядом новую папку с другим алиасом и ее алиас подставил с формулы, вроде стало подхватывать изменения.
Но изменения происходят только в личном варианте папке, а первоначальный шаблон не меняется. И если удалить личную пользователя, она дизайн новой возьмется из начального варианта. Что не так...?
 
N

nvyush

Если в формуле алиас один — приватная папка копирует свой же дизайн, поэтому приходится создавать вторую папку с другим алиасом. Соответственно, нужно синхронизировать дизайн обеих шаредных папок. Каким образом это делать не подскажу — сам об этой технологии только слышал, на деле применять не приходилось.
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!