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

Тема в разделе "Lotus - Программирование", создана пользователем Bamp, 6 май 2009.

Статус темы:
Закрыта.
  1. Bamp

    Bamp Гость

    Добрый день!

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

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

    Omh Lotus team
    Lotus team

    Регистрация:
    4 июл 2007
    Сообщения:
    2.210
    Симпатии:
    0
    Сам не пробовал, но не рискнул бы.
    При такой задаче делал бы делал связку по UNID'ам (в подчинённом документе многозначное поле с UNID'ами родителей)
     
  3. morpheus

    morpheus скриптописец

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
    можно попробовать зделать ответный документ типом Document как зделанно в стандартном хэлпе лотуса
    и попробовать $REF зделать multivalue
     
  4. Medevic

    Medevic Что это ? :)
    Lotus team

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    Bamp
    Баян. :)
    Использую, интересная штука.
    notesDocument.Responses покажет только потомков по полю $ref.
     
  5. Akupaka

    Akupaka А че я?.. О.о

    Регистрация:
    4 окт 2007
    Сообщения:
    3.373
    Симпатии:
    2
    ерунда :) создать поле типа Reference List каждый может.
    структура ответных документов - не просто наличие референса. у лотуса есть спец. структуры по которым эти функции работают. иногда они рушатся. и доставляют админам и разрабам гемора!
    придерживайтесь правила - как только можно избегать метода notesDocument.MakeResponse. иногда у него вунтри что-то слетает и вылазит боком при репликации...
     
  6. Medevic

    Medevic Что это ? :)
    Lotus team

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    Откуда информация?

    Опять откуда информация? Также можно сказать, не используйте лотус. Иногда он ломается. :)
     
  7. Akupaka

    Akupaka А че я?.. О.о

    Регистрация:
    4 окт 2007
    Сообщения:
    3.373
    Симпатии:
    2
    плин, сидел недавно ковырял пальцем землю и выковырял )))
    пару недель назад потратил три недели на разбор полетов почему не работает репликация базы, выяснилось, что из-за @AllDescendants
    рылся в нете, нарыл... к сожалению ссылок нету при себе, растерял по дороге к вам :)
    посмотри у базы свойство Don't support spec response hierarchy, эта галочка тоже замешана...

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

    Omh Lotus team
    Lotus team

    Регистрация:
    4 июл 2007
    Сообщения:
    2.210
    Симпатии:
    0
    Akupaka, так это же даже а Help'e описано.
    @AllDescendants и @AllChildren работают только при взведённой галочке.
    Так что так и должно быть :)

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

    Akupaka А че я?.. О.о

    Регистрация:
    4 окт 2007
    Сообщения:
    3.373
    Симпатии:
    2
    ты не то выделил, что надо. то, что без галки они не работают понятно и в справке написано.
    ты почитай весь тот поток на форуме, есть проблема связанная с MakeResponse
    кажется там же и о структурах ответных доков упоминалось...
     
  10. Medevic

    Medevic Что это ? :)
    Lotus team

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    Почитал. :)
    Специальная структура используется для @AllChildren, @AllDescendants и, наверное, notesDocument.Responses.
    Но там же написано, что это свойство базы не рушит иерархию ответов. Так что не факт, что
    А что про баги, то формулы @AllChildren и @AllDescendants почти не испольщую. В том числе и notesDocument.Responses. И всё прекрасно работает. :)

    И там же на форуме написано, что эта проблема
    пофиксена аж в 5.0.7 :)

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

    Akupaka А че я?.. О.о

    Регистрация:
    4 окт 2007
    Сообщения:
    3.373
    Симпатии:
    2
    хо-хо! а проявлялась она (именно та, что описана в том потоке) у меня в 5.0.13 (или 12)...
    потом апгрейдились на 6-ку, и вылез баг с репликацией в одной базе с @AllDescendants...

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

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

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

    Bamp, вот это обязательно прочти (если не знал), и поиграйся самостоятельно с отображением иерархии в виде, особенно полезной может быть команда Default, но не стоит забывать, что она усложняет вид, и лепить ее всегда вместо нормальной связи, наверное, не стоит...
     
  12. Bamp

    Bamp Гость

    Я бы и сам до такого не додумался:)
    Вопрос что это так сделано. Вот и решил узнать, может это какая-то новая фишечка... Кстати пока работает, правда не совсем понятно как именно.
    Более того на самом деле, использование нескольких "родителей" тут в приницпе неоправдано, но вопрос времени сразу истправить не получиться, нужно время.

    Спасибо. Посмотрел, черным по белому написано: "...Ответный документ может иметь только одного родителя..". Кроме того еще раз залез в форму и увидел, что тип формы только "Document".
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей