Merge Conflict Documents

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

  1. FixeR

    FixeR Гость

    Пользователь берёт документ на редактирование. В это время по расписанию начинает исполняться агент на сервере, в котором меняется одно поле у этого же документа и сохраняется (doc.Save). Теперь пользователь нажимает на сохранение документа:

    Точно известно, что в агенте меняется только 1 поле, которого нет на форме.
    Т.е. пользователь это поле изменить никак не может.

    Вопрос: как-нибудь можно сохранить изменения агента и пользователя в одном документе?

    В агенте - doc.Save(True, False)
    У формы - Merge/No Conflicts
    Кнопка "Сохранить" на форме - uidoc.Save

    Перепробовал кучу комбинаций уже.

    По хелпу мне нужно у формы выставить значение "Merge/No Conflicts".
    Но какой бы вариант я там не выбирал - результат один и тот же.

    Ещё у Save есть пара параметров, отвечающих за создание конфликтных документов - совершенно непонятно, как это всё работает в паре с параметром Conflict Handling формы.
     
  2. VladSh

    VladSh начинающий
    Lotus team

    Регистрация:
    11 дек 2009
    Сообщения:
    1.251
    Симпатии:
    2
    Правильно - это выставить у форм "No Conflicts", а во всех случаях изменении документов использовать блокировки (метод Lock), - поищите по форуму, здесь много было об этом.
     
  3. FixeR

    FixeR Гость

    Ну это слишком просто ;)

    Вот из справки:
     
  4. Medevic

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

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    Не то выделил. Надо было: If a replication conflict occurs.

    Добавлено: Можно в QuerySave проверять не изменился ли документ.
     
  5. phantom76

    phantom76 Lotus team
    Lotus team

    Регистрация:
    25 фев 2005
    Сообщения:
    363
    Симпатии:
    9
    могу порекомендовать варианты, но потребуют серьезной реализации:

    1. Юзеру отдавать на редактирование копию документа ( например ввиде респонса), при сохранении обновлять по его образу оринигал

    2. Как я писал для случая многосерверной распределенной среды писал движок, который обрабатывал очередь транзакций по предопределенным правилам. Транзакции генерировались действиями пользователя.

    Вариант с блокировкой лично меня не устрол для распределенной среды,т.к. долго держит документ занятым...

    3. Еще один раз для разбора конфликтов репликаций писал агент, который анализировал доки и сливал в один.
     
Загрузка...
Похожие Темы - Merge Conflict Documents
  1. susinmn
    Ответов:
    0
    Просмотров:
    1.190
  2. Dragon108
    Ответов:
    7
    Просмотров:
    2.087
  3. wowa
    Ответов:
    7
    Просмотров:
    3.020

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