Потомок нескольких родителей, такое возможно?

  • Автор темы Bamp
  • Дата начала
Статус
Закрыто для дальнейших ответов.
B

Bamp

#1
Добрый день!

Недавно в коде увидел интересное использование отношений документов родитель-потомок,
Программно документ делается потомком двух разных документов, при этом у поля $ref в каждом случае изменяется имя, таким образом получаем в документе два поля типа: Response Reference List с разными именами и разными значениями (а бывает и двумя одинаковыми).

Кто-нибудь сталкивался уже с подобным использованием, и не вызовет ли это проблем при программной обработке, скажем через notesDocument.Responses?
 

Omh

Lotus team
04.07.2007
2 210
1
#2
Сам не пробовал, но не рискнул бы.
При такой задаче делал бы делал связку по UNID'ам (в подчинённом документе многозначное поле с UNID'ами родителей)
 

morpheus

скриптописец
07.08.2006
3 915
1
#3
можно попробовать зделать ответный документ типом Document как зделанно в стандартном хэлпе лотуса
и попробовать $REF зделать multivalue
 

Medevic

Что это ? :)
Lotus team
10.12.2004
3 346
1
#4
Bamp
Баян. :)
Использую, интересная штука.
notesDocument.Responses покажет только потомков по полю $ref.
 

Akupaka

А че я?.. О.о
04.10.2007
3 360
1
#5
ерунда :) создать поле типа Reference List каждый может.
структура ответных документов - не просто наличие референса. у лотуса есть спец. структуры по которым эти функции работают. иногда они рушатся. и доставляют админам и разрабам гемора!
придерживайтесь правила - как только можно избегать метода notesDocument.MakeResponse. иногда у него вунтри что-то слетает и вылазит боком при репликации...
 

Medevic

Что это ? :)
Lotus team
10.12.2004
3 346
1
#6
структура ответных документов - не просто наличие референса. у лотуса есть спец. структуры по которым эти функции работают.
Откуда информация?

придерживайтесь правила - как только можно избегать метода notesDocument.MakeResponse. иногда у него вунтри что-то слетает и вылазит боком при репликации...
Опять откуда информация? Также можно сказать, не используйте лотус. Иногда он ломается. :)
 

Akupaka

А че я?.. О.о
04.10.2007
3 360
1
#7
плин, сидел недавно ковырял пальцем землю и выковырял )))
пару недель назад потратил три недели на разбор полетов почему не работает репликация базы, выяснилось, что из-за @AllDescendants
рылся в нете, нарыл... к сожалению ссылок нету при себе, растерял по дороге к вам :)
посмотри у базы свойство Don't support spec response hierarchy, эта галочка тоже замешана...

вот одно из общений, которые я изучал по этой проблемке...
http://www-10.lotus.com/ldd/46dom.nsf/0/0c...d0?OpenDocument
 

Omh

Lotus team
04.07.2007
2 210
1
#8
Akupaka, так это же даже а Help'e описано.
@AllDescendants и @AllChildren работают только при взведённой галочке.
Так что так и должно быть :)

А вообще, респонсы удобная штука, я раньше как-то не проникался.
 

Akupaka

А че я?.. О.о
04.10.2007
3 360
1
#9
Akupaka, так это же даже а Help'e описано.
@AllDescendants и @AllChildren работают только при взведённой галочке.
Так что так и должно быть
ты не то выделил, что надо. то, что без галки они не работают понятно и в справке написано.
ты почитай весь тот поток на форуме, есть проблема связанная с MakeResponse
кажется там же и о структурах ответных доков упоминалось...
 

Medevic

Что это ? :)
Lotus team
10.12.2004
3 346
1
#10
Почитал. :)
Специальная структура используется для @AllChildren, @AllDescendants и, наверное, notesDocument.Responses.
Но там же написано, что это свойство базы не рушит иерархию ответов. Так что не факт, что
структура ответных документов - не просто наличие референса
А что про баги, то формулы @AllChildren и @AllDescendants почти не испольщую. В том числе и notesDocument.Responses. И всё прекрасно работает. :)

И там же на форуме написано, что эта проблема
I am using Lotuscript and doc.MakeResponse to assign a document to a new parent document. It had been working beautifully, but now, upon a call to doc.Save, the error:
"Notes Error: Entry already in index"
appears.
пофиксена аж в 5.0.7 :)

Bamp
http://notesnet.ru/nn/notesnet.nsf/note/EF...32574E4004BECF0
 

Akupaka

А че я?.. О.о
04.10.2007
3 360
1
#11
хо-хо! а проявлялась она (именно та, что описана в том потоке) у меня в 5.0.13 (или 12)...
потом апгрейдились на 6-ку, и вылез баг с репликацией в одной базе с @AllDescendants...

структура ответных документов - не просто наличие референса
ну, я имел в виду, что нельзя натыкать разных референсов и получить много родителей по Responses.
прописание $REF, причем в виде Reference List срабатывает, но $REF2 уже нет...

судя по всему для notesDocument.Responses используется спец структура, но отличная от той, что для @AllC/D, т.к. даже когда собака не работает, то notesDocument.Responses работает... думаю, что лотус создает простой вид с ключем )))

еще раз напомню - будьте осторожны с MakeResponse

Bamp, вот это обязательно прочти (если не знал), и поиграйся самостоятельно с отображением иерархии в виде, особенно полезной может быть команда Default, но не стоит забывать, что она усложняет вид, и лепить ее всегда вместо нормальной связи, наверное, не стоит...
 
B
#12
Сам не пробовал, но не рискнул бы.
При такой задаче делал бы делал связку по UNID'ам (в подчинённом документе многозначное поле с UNID'ами родителей)
Я бы и сам до такого не додумался:)
Вопрос что это так сделано. Вот и решил узнать, может это какая-то новая фишечка... Кстати пока работает, правда не совсем понятно как именно.
Более того на самом деле, использование нескольких "родителей" тут в приницпе неоправдано, но вопрос времени сразу истправить не получиться, нужно время.

Почитал. :)
Специальная структура используется для @AllChildren, @AllDescendants и, наверное, notesDocument.Responses.
Но там же написано, что это свойство базы не рушит иерархию ответов. Так что не факт, что

А что про баги, то формулы @AllChildren и @AllDescendants почти не испольщую. В том числе и notesDocument.Responses. И всё прекрасно работает. :)

И там же на форуме написано, что эта проблема

пофиксена аж в 5.0.7 :)

Bamp
http://notesnet.ru/nn/notesnet.nsf/note/EF...32574E4004BECF0
Спасибо. Посмотрел, черным по белому написано: "...Ответный документ может иметь только одного родителя..". Кроме того еще раз залез в форму и увидел, что тип формы только "Document".
 
Статус
Закрыто для дальнейших ответов.