Войти
 
 
   
 
  
Новости Notes.ру Библиотека Биржа труда Вопрос - ответ Форум Регистрация Поиск О проекте
Разделы
О Notes
Советы
Шаблоны и примеры
Литература
Презентации
 
Всё о задаче AdminP. Часть вторая   Во второй части мы завершаем рассмотрение AdminP. В ней рассмотрены запросы междоменного администрирования и способы управления функциями AdminP с помощью настроек документа сервера, команд консоли сервера, файла Notes.ini и интервалов очистки базы данных. В этой статье предполагается, что вы опытный администратор Domino и прочитали первую часть
О Notes Читать статью
 
Всё о задаче AdminP. Proxy-действия в R5 и Domino 6   Приложение к статье об административном процессе
О Notes Читать статью
 
Всё о задаче AdminP. Часть первая   Перевод классической статьи 2003-его года о задаче административного процесса (AdminP). Очень полезна для понимания работы механизма этой задачи. В первой части статьи описаны компоненты задачи AdminP, как они работают, и как их использование помогает сделать работу администратора Domino проще. Задача AdminP (сакращённо от Administration Process, Административный процесс) работает с базой административных запросов (Administration Requests, admin4.nsf)
О Notes Читать статью
 


Шаблоны и примеры

Главная   Библиотека   Шаблоны и примеры

Конфликтные документы и обработка конфликтов

Николай Норкин
Вятские Информационные Технологии
nickanor@mail.ru

Суть конфликтов документов
Платформа Lotus Notes/Domino - среда коллективной работы пользователей. Большинство приложений в ней рассчитаны на совместную работу пользователей над документом. Возможность совместной работы периодически приводит к тому, что документ одновременно редактируют (изменяют его содержимое) несколько человек. В этом случае платформа пытается сохранить плоды работы всех пользователей, определяя одну из версий документа как основную, а остальные сохраняя в виде конфликтных документов (конфликтов)
Собственно, можно различить два механизма порождения конфликтов: конфликты сохранения и конфликты реплицирования
Конфликты, произведённые пользователями, работающими с базой документов на одном сервере (с одной репликой базы), - конфликты сохранения. Сервер отслеживает возникновение конфликтов уже при редактировании и сохранении документов пользователями. Если между открытием документа пользователем (либо предыдущим событием сохранения) и сохранением документа тот был изменён и сохранён другим пользователем, возникает опасность потери информации, введённой тем или другим пользователем
В этом случае приложение Lotus Notes предлагает пользователю, дабы не потерять плоды работы, сохранить документ в виде конфликтного документа, чтобы потом иметь возможность сравнить версии документов и решить, как объединить информацию, введённую обоими пользователями

В случае положительного ответа на приведённое на рисунке программное предупреждение и возникает конфликтный документ
Следует отметить, что современные версии Lotus Notes поддерживают механизм блокировки документов. В этом случае, пока документ заблокирован пользователем, никто другой не сможет редактировать этот документ. При попытке перевести документ в режим редактирования приложение сообщит о том, что документ блокирован и кем блокирован, и не даст его редактировать

Кроме того, что блокировка документов может привести к другим проблемам (пользователь в силу своей забывчивости может удерживать документ заблокированным очень продолжительное время, и снять блокировку кроме него сможет только администратор ресурса), механизм блокировки не решает проблему конфликтов в распределённой среде Lotus Notes/Domino - при репликационных конфликтах
Действительно, при размещении базы данных на различных серверах и клиентских рабочих местах факт изменения документа в другой реплике отслеживается только в процессе репликационного обмена документами. Возможность возникновения конфликтов репликации увеличивается при редкой частоте репликаций, поскольку период "одновременного редактирования" в данном случае определяется уже периодом между двумя репликациями
Если при разработке пользовательского приложения установлен необходимый режим, то при обнаружении в процессе репликации изменений, происшедших в документе в обеих репликах базы, платформа Lotus Notes/Domino стремится самостоятельно разрешить конфликт, проверяя изменения в полях документа. В случае, если в документе в различных репликах подверглась изменению информация в разных полях - реплики объединяют эти изменения. Конфликт не возникает. Но если было изменено одно и то же поле - конфликт неизбежен. Автор позволит ещё раз заострить внимание читателя, что объединение конфликтов на уровне полей происходит во-первых, только в случае репликационных конфликтов, и во-вторых, если данный механизм разрешения конфликтов заложен разработчиком ресурса

Отображение конфликтных документов в интерфейсе приложения
В списках документов (представлениях и папках документов) конфликты отображаются специальной надписью в строке документа и серым ромбом (diamond) в поле слева от строки

Поскольку строки конфликтов не улучшают пользовательский интерфейс приложения, мешают пользователю работе с приложением и не отображают никакой информации кроме наличия самого документа-конфликта, автор предпочитает скрывать отображение конфликтов в большинстве пользовательских списков, оформляя их в виде отдельного списка - списка конфликтных документов

Панель разрешения конфликтов
Для разрешения конфликтов пользователям предлагается сравнить информацию обеих версий (документа и конфликта на него) и перенести информацию из одного документа в другой (или сохранить обе версии в виде основных самостоятельных документов)
Специального инструмента для этого в системе Lotus Notes не предоставляется
Поэтому автором для удобства работы пользователей в приложения встраивается дизайн панели разрешения конфликтов
В верхней области открытого документа появляется предупреждение о существовании конфликта

По кнопке Обработать конфликт открывается Панель разрешения конфликтов, в которой в левой части выводится основной документ, в правой - документ-конфликт. Пользователь может визуально сопоставить информацию в полях документа

Также можно воспользоваться мастером сравнения значений полей документов, щёлкнув по кнопке Поиск различия значений в верхней части панели

В верхнем окне располагается список названий полей, чьи значения не совпадают в документах. Пользователь добавляет значение из конфликтного документа в основной, нажав кнопку
По кнопке предусмотрен отказ от изменений для обработанных полей (нижний список диалогового окна)
Пользователь может получить список полей в текстовом виде, открыв дополнительное диалоговое окно кнопкой . Скопировав содержимое окна в буфер обмена, пользователь сможет разобрать конфликт документа позднее вручную
После закрытия окна мастер производит изменения в интерфейсе основного документа. Пользователю остаётся сохранить документ
Замечание. Мастер не предусматривает разбор конфликтов в полнотекстовых полях. Сравнение содержимого этих полей придётся производить в ручном режиме

В продолжении материала автор постарается поведать о технических аспектах решения
 
  Опубликовано — 02/18/2008 |    

Андрей, 21.02.2008:
Николай, приветствую В самой базе docConflictAPG.nsf есть скриншот и кратко написано как использовать (если у тебя она не открылась, то могу выслать этот текст) Из впечатлений: - в состоянии "as is" инструмент исключительно для администраторов (разработчиков), т.к. показываются названия всех конфликтных полей (включая системные типа $Revisions). Я придерживаюсь правила, что пользователя не стоит лишний раз травмировать внутренностями БД. - конфликт и главный документ открываются во фреймах (я так понял из скриншотов у тебя аналогично) БД docConflictAPG.nsf, то минус возникает, если у форм специфичный дизайн связанный с автозапуском каких-то своих фреймов. В этом случае, выдаётся сообщение, что фрейм не найден и сравнение не возможно. - с русскими буквами проблема (не смотрел в коде, но скорее всего традиционное LMBCS - они там не всегда вспоминают, что есть другие языки кроме английского) - сравнивается только текст (не форматирование) Из очевидных плюсов: - интуитивно понятный интерфейс (правда английский :-) + вынесено в панель инструментов, претендуя на универсальность. - есть сравнение в RT (текст сравнивает хорошо, понятно отображая изменения) Думаю, для внедрения в своё приложение, не плохая отправная точка.

Автор, 20.02.2008:
Андрей, приветствую! Посмотрел описание инструментария - там версии 8.0, 7.0 У меня сейчас меньше Так что оценить не смогу - делись впечатлениями Чем развёрнутее - тем лучше (зачтётся при розливе)

Андрей Голембиовский, 19.02.2008:
Николай, я на текущий момент пользуюсь инструментом http://www-10.lotus.com/ldd/bpmpblog.nsf/dx/tool-conflict Хотя конечно, он не для пользователей.



Добавить комментарий
Имя * :
e-mail
Комментарий * :
Код подтверждения * :


Мероприятия
Пресс-релизы
Биржа труда
Последнее на форуме
 
А так же:
Как удалить профиль?
16.04.2016 00:08:51
Скопировать в буфер поле документа
24.05.2015 08:55:52
Импорт DXL-описания документов в Lotus Domino. Одноимённые поля
16.04.2015 16:49:58
 
© LOGOSPHERE.RU