Раздел Declaration на Форме!

GROMILA

Well-known member
08.04.2004
297
0
#1
Решил опубликовать подводный камень, на который напоролся
и чуть было не пошел ко дну.

Ситуация:
Форма докумнта1, клиент1:
1. Хранится в документе1 ссылка на документ2
2. В разделе Declaration объявили глобальную переменную gDoc для документа2 (NotesDocument)
3. Вычитали документ2 по ссылке и присвоили gDoc.

Проблема:
На клиенте2 изменили документ2, но после присвоения на клиенте1 (стояли в Debuger-e)

4. Повторно читаем в совершенно другую переменную LocalDoc по той же ссылке документ2
5. Получаем старые данные!!!

Lotus кэширует или просто всегда обращается к данным из глобального документа!!!

И такая клевая ситуация получается, что клиент1 никогда не получит данные из БД
Только по представлению с параметром NoCache, которое еще нужно создать - фигня!!!!!!

У нас же есть ССЫЛКА, по ней - не вычитаешь!!!!


Решение:
- Убрали глобальную переменную, это был плохой метод,
которым кто-то из программеров решил не лазить лишний раз в БД.

Но, отыскать сей глюк в чужом коде можно было только ЛОГИЧЕСКИ !
Да и Lotus не совсем прав!!!

Вопрос:
1. Может ли кто-нибудь обосновать такое поведение Lotusa?
Есть ли в документации упоминание о таком кэшировании?
 
N
#2
тебе поможет document lockink - единовременно редактировать и сохранять документ может только одна сессия определенного пользователя
 

GROMILA

Well-known member
08.04.2004
297
0
#3
Это ты про блокировки?
А разблокировать зависший ПК кто будет?
Админа тревожить не хочется
 
N
#4
разблокировка зависшего пк выполняется посредством функционального нажатия кнопки Reset на корпусе соответствующего пк