Решено Подчиненные документы...

Тема в разделе "Lotus - Xpages", создана пользователем JohnLemon, 18 фев 2015.

  1. JohnLemon

    JohnLemon Well-Known Member

    Регистрация:
    20 авг 2014
    Сообщения:
    274
    Симпатии:
    5
    Подскажите пожалуйста, как решается в лотусе следующая проблема! Допустим необходимо реализовать списание материалов. Я создаю документ расходная накладная например, далее на форме выбираю материал, количество, цену и т.д нажимаю добавить создается документ "Списание" с unid накладной, материалом, и т.д. Если я не сохраню док "Накладная" документы, которые я добавил останутся и будут лишними. Можно ли как то в лотусе создавать как бы временные документы, что бы потом не удалять их самому. И вообще может кто подскажет как простым способом решаются данные проблемы.
     
  2. alexas1

    alexas1 Lotus team
    Lotus team

    Регистрация:
    10 апр 2014
    Сообщения:
    562
    Симпатии:
    214
    1 Инфу для дока "Списание" можно набирать в "Накладную" (как временную, т.е. её не сохранять) и, если она (Накладная) сохраняется - в queryclose создать "Списание", набить ранее подготовленной инфой и сохранить. Будет сохранена пара доков, или не одного.
    2 Если делать как у тебя, после сохранения "Списания", записать его UNID в "Накладную" и, если "Накладная" не сохраняется, опять же в queryclose накладной, взять по этому UNID "Списание" и удалить.
    3 "Склад" прогится, почти так же как и "Бухгалтерия", т.е. в "расчёт" должны попадать только доки, которые имеют уже сохранённый родитель. В 1С для этого придуман хор. механизм - "проведение": т.е. в док записывается метка "проведён" и он учитывается в расчётах. В твоём случае, можешь делать уже сохранённое "Списание" "проведённым", если "Накладная" (от него) сохраняется (опять же в queryclose). В противном случае он остаётся "не проведённым" (т.е. временным) и не видимым для логики (конечно, если это предусмотрено), и можешь удалить его потом, когда нибудь, напр. агентом.

    Такшта, все способы простые.
    ---------------------
    P.S.
    ... и причём здесь Xpages ;)
     
    2 пользователям это понравилось.
  3. NickProstoNick

    NickProstoNick Статус как статус :)

    Регистрация:
    22 авг 2008
    Сообщения:
    1.766
    Симпатии:
    39
    На закрытие вряд ли получится что-то удалить. Т.к. обычно у пользователей нет прав на удаление.

    Мы поступали проще. Основной док все равно сохраняется как черновик. А через н-дней удаляются серверным агентом
     
    2 пользователям это понравилось.
  4. NickProstoNick

    NickProstoNick Статус как статус :)

    Регистрация:
    22 авг 2008
    Сообщения:
    1.766
    Симпатии:
    39
    Да и хранить юнид не надо. Можно и так получить коллекцию респонсов
     
    #4 NickProstoNick, 20 фев 2015
    Последнее редактирование модератором: 20 фев 2015
    2 пользователям это понравилось.
  5. alexas1

    alexas1 Lotus team
    Lotus team

    Регистрация:
    10 апр 2014
    Сообщения:
    562
    Симпатии:
    214
    "Подчинённый" не обязательно респонс (в общем случае)
     
    2 пользователям это понравилось.
  6. NickProstoNick

    NickProstoNick Статус как статус :)

    Регистрация:
    22 авг 2008
    Сообщения:
    1.766
    Симпатии:
    39
    Судя из первого сообщения - вероятней всего это респонсы
     
    2 пользователям это понравилось.
  7. lionk

    lionk Well-Known Member

    Регистрация:
    5 апр 2007
    Сообщения:
    308
    Симпатии:
    3
    а разве при копировании дока из базы в базу(или онтрЦ контрлВ) он не меняется, и вся иерархия респонзов не теряется?
     
    2 пользователям это понравилось.
  8. alexas1

    alexas1 Lotus team
    Lotus team

    Регистрация:
    10 апр 2014
    Сообщения:
    562
    Симпатии:
    214
    Эт ващще хороший вариант. Удалять сразу доки - зло, лучше их метить как "удалённые", до "лучших времён"
     
    2 пользователям это понравилось.
  9. alexas1

    alexas1 Lotus team
    Lotus team

    Регистрация:
    10 апр 2014
    Сообщения:
    562
    Симпатии:
    214
    Меняется. Разрешать юзеру произвольное копирование - тоже зло. Я всё это запрещаю (для сложных баз), в том числе и CtrC\CtrV. Только кодом.
     
    2 пользователям это понравилось.
  10. NickProstoNick

    NickProstoNick Статус как статус :)

    Регистрация:
    22 авг 2008
    Сообщения:
    1.766
    Симпатии:
    39
    при копировании полной пачки (родитель и респонсы) сразу - связь сохраняется.
    НО если механизм копирования рукописный - можно даже юниды сохранить.

    Но мы и от этого отказались. После прохождения цикла согласования - респонсы удаляются и данные записываются в RT-поле. И в результате у нас остается один документ
     
    4 пользователям это понравилось.
  11. savl

    savl Lotus team
    Lotus team

    Регистрация:
    28 окт 2011
    Сообщения:
    2.051
    Симпатии:
    146
    Приколько, но как реализовано для многоуровневых дискуссий?
     
    2 пользователям это понравилось.
  12. NickProstoNick

    NickProstoNick Статус как статус :)

    Регистрация:
    22 авг 2008
    Сообщения:
    1.766
    Симпатии:
    39
    У нас не было многоуровневых дискуссий.
    И писали мы в табличку RT-поля.
     
    2 пользователям это понравилось.
  13. JohnLemon

    JohnLemon Well-Known Member

    Регистрация:
    20 авг 2014
    Сообщения:
    274
    Симпатии:
    5
    Это не вариант, а если закрыли вкладку или браузер доки остаются.
    Помечается как то в отдельном поле?? или у лотуса можно прям создать как то что бы он понимал что это черновик ?
    Почему нельзя построить таблицу с данными а потом из нее сохранять доки ? Неужели проще создавать доки, потом их как то помечать а потом удалять и еще проверять удаляются они или нет ?
     
  14. alexas1

    alexas1 Lotus team
    Lotus team

    Регистрация:
    10 апр 2014
    Сообщения:
    562
    Симпатии:
    214
    ... А если умер комп?... А если упал сервер?... А если умер юзер... Описано 4 варианта, а не рецепта. На самом деле их немеряно - программирование это искусство.
    Надо обеспечить отказоустойчивость - флаг в руки. У нотуса нет встроенного механизма транзакций, ну вот нету, и всё...
    ;) это что? Хочется, чтобы вендор предусмотрел все будущие хотелки и список рецептов на все случаи жизни? А программист для мебели?
    ???????? А доки, сохраненные в базе это не уже построенная "таблица"???
     
    2 пользователям это понравилось.
  15. JohnLemon

    JohnLemon Well-Known Member

    Регистрация:
    20 авг 2014
    Сообщения:
    274
    Симпатии:
    5
    Доки сохраненные в базе, привязанные к несуществующему доку это мусор а не доки!!!
     
  16. alexas1

    alexas1 Lotus team
    Lotus team

    Регистрация:
    10 апр 2014
    Сообщения:
    562
    Симпатии:
    214
    Так точно, мусор. Вот и удаляй их автоматом, если они там появились. Это тоже может быть частью логики сохранения нормальной связности цепочек. Асинхронный механизм контроля часто лучше синхронного. Кста, стабы ведь тебя особо не парят? А их может быть немеряно. Каму-то они нужны, кто-то их чистит сам, а кто-то просто не даёт им появляться. Важно только одно: что бы "мусор" не мешал работе - не был виден, где ему не положено.
     
    #16 alexas1, 24 фев 2015
    Последнее редактирование модератором: 24 фев 2015
    2 пользователям это понравилось.
Загрузка...

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