Ошибка при работе с приватной вью из Ls

LuMee

Well-known member
02.05.2006
477
0
#1
Имеется приватная (SDPOFU) папка, служащая для поиска документов в базе.
Папка имеет действие, в котором, в частности, выполняется примерно такое:
Код:
Dim db As NotesDatabase, view As NotesView
...
Set view = db.GetView("Приватная папка")
If view.AllEntries.Count > 0 Then
view.AllEntries.RemoveAllFromFolder("Приватная папка")
End If
У пользователя-управляющего тут все работает без затыков. Однако есть пользователь-редактор, у которого на строчке номер 4 (If view.AllEntries.Count > 0 Then) скрипт торжественно валится с загадочной ошибкой: "Индекс не должен создаваться на сервере ("Приватная папка")".
Пробовал уже и приватную папку под этим юзером удалять, и закладку на базу удалял из рабочей области (этим лечится довольно много глюков :blink:) - ничего не помогает. Кто подскажет, что за блин?
З.Ы. Использую Лотус R5 (5.0.4а).
 

morpheus

скриптописец
07.08.2006
3 915
1
#2
Для: LuMee
Пользуйтесь собаками, для удаления всех документов из папки
Код:
@Command([EditSelectAll]); @Command([RemoveFromFolder])
Для удаления выделенных документов из папки
Код:
@Command([RemoveFromFolder])
 

LuMee

Well-known member
02.05.2006
477
0
#3
Для: Morpheus
Спасибо за совет, но тогда такой вопрос: если вышеозначенные команды выполнять с помощью Evaluate, что надо передавать вторым параметром? Пробовал подсовывать им NotesUIView - не вышло.
 

morpheus

скриптописец
07.08.2006
3 915
1
#4
Второй параметр в Evaluate НЕ ОБЯЗАТЕЛЬНЫЙ, просто ничего не передавайте
 
H

Hedg

#6
Для: Constantin A Chervonenko
Не ошибаетесь

Usage
The formula takes the field from the specified document.
@Functions that affect the user interface do not work in the Evaluate method. These include: @Command, @DbManager, @DbName, @DbTitle, @DDEExecute, @DDEInitiate, @DDEPoke, @DDETerminate, @DialogBox, @PickList, @PostedCommand, @Prompt, and @ViewTitle.
 

LuMee

Well-known member
02.05.2006
477
0
#7
Ну вот отстой... Агента что-ли теперь придется сооружать?
И все-таки: что же это за ошибка с индексами? Про какой индекс вообще речь идет и чем ему сервер не угодил?
 
N
#8
Для: LuMee

попробуй удалить иконку бд из рабочей области пользователя, в acl поставь для него бит Create private folders/views, открой бд заново и попробой свой скрипт.
 

LuMee

Well-known member
02.05.2006
477
0
#9
Для: nor
Пробовал.. даже старый-добрый способ: поубивать иконки на рабочей области, потом на серваке создать копию базы, убить оригинал, скопировать копию обратно.. Ничего не помогает. Пока сделал просто отдельную кнопку "Очистить" с вышеприведеннымы собако-формулами, однако это решение не вполне устраивает заказчика.
 

morpheus

скриптописец
07.08.2006
3 915
1
#10
Для: LuMee
А кэши чистить и временные папки на лок. коомпе юзверя
 

morpheus

скриптописец
07.08.2006
3 915
1
#12
Для: LuMee
Удалить в notes папке файл cashe.ndk

а пути к временным папкам можно посмотреть через свойствва системи "пееременные среды "
 

LuMee

Well-known member
02.05.2006
477
0
#13
Для: Morpheus
Попробую... Хотя, конечно, если пользователям надо будет реглярно свои кеши чистить, это не будет гут.
 

morpheus

скриптописец
07.08.2006
3 915
1
#14
Для: LuMee
да нет, регулярно .. врятли
думаю просто иногда как способ может помоч, особенно если это единичный случай
 
V

Veselinka

#15
Боюсь сказать лажу, но мнение следующее:
Не будет работать вообще.

Мы пробовали пользоваться приватными вьюхами(папками), чтобы складывать в них отобранные по критерию документы и по ним делать навигатор и по навигатору - формировать отчет.
Ряд вызовов просто не работает на приватных представлениях, валится с ошибкой. В документации ничего на эту тему нет.

Из под менеджера и дизайнера работать будет, вроде бы потому что созданная из под него вьюха сохраняется в самой базе, а не на десктопе.
Возможно сказала фигню, потому что с вопросом этим детально не разбиралась.
 
N
#16
Как недавно установили американские ученые из Центра Научных Исследований Дефектного ПО (The Center of Scientific Reserch of Buggy Software) использование приватных представлений (private views) в Lotus Notes чревато появлением так называемых "аномалий Абхиманью", названных так в честь одного индийского программиста, впервые запрограммировавшего поведение таких представлений. В частности, Дж. Струзе (J. Strother), ведущий специалист по тестированию Lotus Notes, приводит следующие изыскания в своей докторской работе "Хаотическая конвергентная адаптация пользователей к IBM Lotus":

"
... Многие программисты платформы Domino, планируя и внедряя в своих проектах приватные представления, вводят себя и конечных пользователей в состояние совершенного ступора и недоумения. Представьте себе менеджера департамента, который работает с годичным графиком отпусков сотрудников своего отдела. После многочасового и кропотливого стравнения данных из разных источников и внесения этих данных в базу данных, он решает немного передохнуть за чашечкой кофе и посмотреть на результаты своей работы. Он обращается к приватному представлению и... не видит ровном счетом ничего. (еще худшая ситуация: и... видит лишь часть внесенных документов). Естественно у несчастного менеджера мгновенно нарушается прцесс обмена веществ в организме, повышается давление, а в голове проносятся сотни мрачных мыслей: "Я сделал что-то не так?", "Кто-то удалил мои документы???", "База данных повреждена????", "3 часа моей работы потеряны???", "Какой, черти бы их подрали, телефон департамента технической поддержки!??". Затем начинаются звонки, недовольные возгласы, бледные лица девелоперов и т.д. На самом деле, весь этот бардак является следствием отсутствия взаимного понимания культур Востока и Запада. Как известно, программиcты Индии, где долгие годы разрабатывался Lotus Notes, являются последовательными сыновьями и дочерями своей древней родины. С детства впитав в себя философское мировоззрение своей древней цивилизации, Абхиманью, программист, отвечавший за кодирование частных представлений, привнес в в свою работу толику "правильного" отобржения документов в таких представлениях. К слову сказать, дабы все работало как нужно, требуется овеять себя и свое рабочее место благовониями, смешанными по специальному рецепту с некоторыми природными психотропными веществами. Затем нужно погрузить свое тело и мозг в состояние глубокого расслабления и созерцания экрана монитора. На заключительной стадии, помогая себе нехитрыми и несложными заклятиями на кшатрийском наречии, необxодимо ввести себя в состояние близкое к трансу и послать повелительное мысле-указание серверу Domino и своему рабочему компьютеру отобразить документы...

К сожалению, Абхиманью не так давно уволился из IBM и нашел себе работу в некой "Microsoft Cor.". В моем последнем телефонном разговоре с ним, он мне сообщил, что его назначили на ответственный пост, связанный с разработкой новой операционной системы. Однако получить от него рецепты благовоний и точные заклятия мне не удалось - Абхиманью сослался на сильную занятость."
 

alexstudent

Well-known member
13.09.2009
107
0
#18
Имеется приватная (SDPOFU) папка, служащая для поиска документов в базе.
Папка имеет действие, в котором, в частности, выполняется примерно такое:
Код:
Dim db As NotesDatabase, view As NotesView
...
Set view = db.GetView("Приватная папка")
If view.AllEntries.Count > 0 Then
view.AllEntries.RemoveAllFromFolder("Приватная папка")
End If
У пользователя-управляющего тут все работает без затыков. Однако есть пользователь-редактор, у которого на строчке номер 4 (If view.AllEntries.Count > 0 Then) скрипт торжественно валится с загадочной ошибкой: "Индекс не должен создаваться на сервере ("Приватная папка")".
Пробовал уже и приватную папку под этим юзером удалять, и закладку на базу удалял из рабочей области (этим лечится довольно много глюков :)) - ничего не помогает. Кто подскажет, что за блин?
З.Ы. Использую Лотус R5 (5.0.4а).

Была подобная проблема. Решили так:
1. Дали пользователю права на уровне дизайнера к бд
2. Зашли под ним в бд в дизайнере
3. В элементе дизайна Folder удалили его приватную папку, которая создается при поиске.

Получается что папка как-то криво создается. И увидеть можно только тому кто создал. Ну либо может написать что-то на LS, чтобы можно было эти папки увидеть.
 

savl

Lotus team
28.10.2011
2 136
105
#19
на query open или close базы вешается скрипт:
Код:
Forall x in db.views
if x.IsPrivate then call x.remove()
End forall
Если имена папок известны, а они известны, то можно массив имен использовать.