Как правильно реализовать связывание двух документов?

Тема в разделе "Lotus - Программирование", создана пользователем fedotxxl, 7 дек 2007.

  1. fedotxxl

    fedotxxl Well-Known Member

    Регистрация:
    9 ноя 2005
    Сообщения:
    614
    Симпатии:
    0
    Поле документа А берет значение из документа Б (при выборе человеком). Через некоторое время документ Б меняется. Как мне обновить документ А?
    Интересует не тупое решение, а модель построения связей
     
  2. valmont

    valmont Well-Known Member

    Регистрация:
    27 дек 2004
    Сообщения:
    63
    Симпатии:
    0
    родитель-ребенок уже не модно?
     
  3. morpheus

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

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
    <!--QuoteBegin-fedotxxl+7:12:2007, 00:55 -->
    <span class="vbquote">(fedotxxl @ 7:12:2007, 00:55 )</span><!--QuoteEBegin-->Как мне обновить документ А?
    [snapback]88824" rel="nofollow" target="_blank[/snapback]​
    [/quote]
    да собственно как всегда - ручками

    Какие у них отошения не важно . Первое что приходит респонсы. Но если документы респонсами делать не хочеться , можно просто хранить в дочерних документаз униды тех на кого они ссылаються

    Вопрос обобщен - конкретизируйте
     
  4. alb

    alb Well-Known Member

    Регистрация:
    13 июл 2005
    Сообщения:
    212
    Симпатии:
    0
    да с этим проблемы, обновления придется делать ручками или агентом.

    как вариант, иногда вот что делаю.
    храню юнид документа А в документе Б. а то поле которое берется из документа А делаю вычисляемым при открытии. и вешаю формулу с дблукапом.
    но лучше так не делай. это так вариант с вытекающими мучениями )))
    самый то агентом обновить
     
  5. Sandr

    Sandr Гость

    Если обновление должно быть актуальным при каждом открытии документа, то это единственный способ...

    Если же можно терпеть некоторое время, то лучше обновлять шедульным агентом...
    Хотя, как вариант, можно на квериоупен документа впизнуть вычисление... :)
     
  6. morpheus

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

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
    <!--QuoteBegin-alb+7:12:2007, 09:24 -->
    <span class="vbquote">(alb @ 7:12:2007, 09:24 )</span><!--QuoteEBegin-->обновления придется делать ручками или агентом.
    [snapback]88857" rel="nofollow" target="_blank[/snapback]​
    [/quote]
    В любом случае, это не реляционки

    <!--QuoteBegin-alb+7:12:2007, 09:24 -->
    <span class="vbquote">(alb @ 7:12:2007, 09:24 )</span><!--QuoteEBegin-->вычисляемым при открытии. и вешаю формулу с дблукапом.
    [snapback]88857" rel="nofollow" target="_blank[/snapback]​
    [/quote]
    Зло.... лучше всё таки ночным агентиком
     
  7. fedotxxl

    fedotxxl Well-Known Member

    Регистрация:
    9 ноя 2005
    Сообщения:
    614
    Симпатии:
    0
    Оно понятно, что делать нужно будет агентом... Сейчас мне интересна модель
    Представьте, что у вас есть справочник. Из этого справочника разные документы (по разным формам) в разные поля берут значение (при выборе справочника пользователем)
    Как нам обновить все поля во всех документах при изменении значения справочника?
    Каким образом помечать, что поле Field1 тянет значение из справочника такого-то...

    Вариант, который набросал себе только что:
    в документе (который тянет справочник) есть три поля:
    ReferenceFIELDs = поля, которые тянут откуда-то
    ReferenceUNIDs = юниды на справочники
    ReferenceFORUMLAs = поля, которые нужно взять из справочника (можно @ формулу)
    Гм... справочник ведь может не знать, что он справочник? Получается, что агент будет бегать по документам, у которых есть поле ReferenceUNIDs, сравнивать результат ReferenceFORUMLAs с содержимым поля из ReferenceFIELDs и если значение изменено, то пересохранять документ. Что-то мне кажется, что при больших объемах загнется это... Как думаете?
     
  8. Sandr

    Sandr Гость

    "справочник ведь может не знать" - а Вы его научите :)

    Вычисляйте при открытии и не парьтесь... Работает нормально...
     
  9. morpheus

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

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
    <!--QuoteBegin-fedotxxl+7:12:2007, 13:37 -->
    <span class="vbquote">(fedotxxl @ 7:12:2007, 13:37 )</span><!--QuoteEBegin-->Как думаете?
    [snapback]88921" rel="nofollow" target="_blank[/snapback]​
    [/quote]
    Зло... зачем Вы пытаетесь из Лотуса зделать SQL ?
     
  10. fedotxxl

    fedotxxl Well-Known Member

    Регистрация:
    9 ноя 2005
    Сообщения:
    614
    Симпатии:
    0
    Для: Sandr
    В представлениях нельзя отображать... Предположим документ один, 1000 человек работает с ним... очень рациональное получается у вас решение

    Для: Morpheus
    А что делать? Требуется...
     
  11. Sandr

    Sandr Гость

    Для: fedotxxl

    Я вроде и слова не сказал о представлениях...

    "Предположим документ один, 1000 человек работает с ним" - и что? хоть сто тысяч...
     
  12. fedotxxl

    fedotxxl Well-Known Member

    Регистрация:
    9 ноя 2005
    Сообщения:
    614
    Симпатии:
    0
    Для: Sandr
    Один раз забить в документ значение или сто тысяч раз тащить значение из другого документа. Что лучше?
     
  13. Constantin A Chervonenko

    Constantin A Chervonenko Well-Known Member

    Регистрация:
    30 май 2006
    Сообщения:
    1.288
    Симпатии:
    0
    То-ли задачка неверно проектируется, то-ли инструмент неправильный выбран
    1. Notes не реляционка
    2. Реляционка тебя тоже не спасла-бы: или "сто тысяч раз тащить значение из другого" рекорда (в случае нормализации), либо для "автоматической" модификации полей городить аге.. тьфу! триггер (при денормализации)!

    Результат:
    - либо безвинная дискредитация Нотеса, как средства решения задач
    - либо дискредитация решателя ;-)
     
  14. fedotxxl

    fedotxxl Well-Known Member

    Регистрация:
    9 ноя 2005
    Сообщения:
    614
    Симпатии:
    0
    Для: Constantin A Chervonenko
    То, что Notes не реляцонка я и так знаю, но если для реляционки "сто тысяч раз тащить значение из" другой таблицы - одно из её предназначений, то для LN...

    Так все-таки... никого не интересует нормальное решение вопроса?
    Не держать вообще значение в документе, а тянуть при открытии? Тут два вопроса - как быстро работает / невозможно отображать значения в представлениях
    Или же ночным агентом обновлять значения? Здесь нужно думать, как лучше сделать
     
  15. Constantin A Chervonenko

    Constantin A Chervonenko Well-Known Member

    Регистрация:
    30 май 2006
    Сообщения:
    1.288
    Симпатии:
    0
    Ну, по смыслу решать...
    Документо-ориентированность не предполагает изменения содержимого док-та при изменении справочника, на который док-т ссылается.
    Как вы видите себе, к примеру, изменение свидетельства о рождении в случае переименования улицы, города, страны наконец?
    Как вы видите возможность защиты такого док-та электронной подписью?

    Вывод: тот объект, который вы пытаетесь затолкнуть в Домину, НЕ ДОКУМЕНТ. Т.е. если модель данных вашей задачи верна (о чем я заочно судить не могу), то выбор инструмента неудачен.

    Задайте себе дополнительные вопросы: предполагаемая база - реально распределенная? Если да, то выбор Домины может быть оправдан, но тогда структуру данных надо прожектировать с закладом на это (имея в виду, справочник НЕ БУДЕТ реплицироваться синхронно с осн.базой)
     
  16. morpheus

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

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
    <!--QuoteBegin-Constantin A Chervonenko+10:12:2007, 01:35 -->
    <span class="vbquote">(Constantin A Chervonenko @ 10:12:2007, 01:35 )</span><!--QuoteEBegin-->Документо-ориентированность не предполагает изменения содержимого док-та при изменении справочника, на который док-т ссылается.
    [snapback]89141" rel="nofollow" target="_blank[/snapback]​
    [/quote]
    Абсолютно согласен, иначе вся отчетность, да и вообще результат работы коту под хвост


    <!--QuoteBegin-fedotxxl+9:12:2007, 13:54 -->
    <span class="vbquote">(fedotxxl @ 9:12:2007, 13:54 )</span><!--QuoteEBegin-->Не держать вообще значение в документе, а тянуть при открытии?
    [snapback]89094" rel="nofollow" target="_blank[/snapback]​
    [/quote]
    Коту под хвост такой функционал
     
Загрузка...

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