Notesdocument.isuidocopen

  • Автор темы yerke
  • Дата начала
Y

yerke

как узнать что NotesDocument открыть в UI
где нибудь c cети в клиенте лотуса

NotesDocument.IsUIDocOpen не помогает
 
Y

yerke

tmp=doc.LockHolders
ss=Cstr(tmp(Lbound(tmp)))

always ss="" ???
хотя документ открыть в соседнем компе
 
Y

yerke

А документ локинг поднят?
не подходит
так как я проверяю не открыт ли респонсы данного дока
а не сам док


или кто знает
как задержать выполнение скрипта на 2-3 секунды ;)

так я смог бы определить документом работают в UI или нет
 
O

Omh

Писать свой локинг.
Некое пространство унидов открытых документов.
 
N

nvyush

а зачем тогда вообще эта штука, если она не работает?

Каким образом можно определить, открыт ли у меня документ?

Из хелпа: Indicates whether a NotesDocument object (back-end document) is accessed through a NotesUIDocument object (front-end document).
Т.е. в событиях формы Source.Document.IsUIDocOpen = True
Однако ж замечал, что если в бэкэнде открыть документ, уже открытый в уи, то у него тоже IsUIDocOpen = True. А вот если документ открыт кем-либо ещё, то это свойство не поможет.
 
X

Xalet

Однако ж замечал, что если в бэкэнде открыть документ, уже открытый в уи, то у него тоже IsUIDocOpen = True. А вот если документ открыт кем-либо ещё, то это свойство не поможет.
Как пример...

Ситуация такая: у меня есть документ, открытый либо закрытый и другой документ, с которым он сввязан. Если я изменяю определенное поле во втором документе, оно должно обновиться и в первом. Соответственно проверить надо, не открыт ли он уже у меня(про других сейчас не думаем), потому как если он у меня уже открыт и я его изменю через скажем doc.replaceItemValue... , то ничего хорошего не получится... А отследить это проще всего было бы через IsUIDocOpen, которое имеет значение False даже если документ у меня в данный момент и открыт.
 
N

nvyush

xalet
Имеем базу, в которой при обновлении респонса обновляется родительский док. В кнопке сохранения примерно такой код:
Код:
Set parentDoc = db.GetDocumentByUNID(doc.ParentDocumentUNID)
...
If parentDoc.IsUIDocOpen Then Call ReloadUIDocByDoc(parentDoc)
ReloadUIDocByDoc — самописная функция переоткрытия документа в уи.
Всё работает.
 
T

TIA

А отследить это проще всего было бы через IsUIDocOpen, которое имеет значение False даже если документ у меня в данный момент и открыт.

Как вы получаете первый документ? Если через вьюшку, то попробуйте заменить на получение по UNID.
 
Мы в соцсетях:

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