Предотвращение конфликтов

Доступно с лицензией Location Referencing.

Предотвращение конфликтов улучшает поддержку многопользовательского редактирования за счет координации редактирования маршрутов и событий в системе линейных координат (LRS) многопользовательская база геоданных. ArcGIS Location Referencing координирует редактирование, применяя набор условий и поведений, которые требуют от редакторов блокировки перед редактированием маршрута или события.

Основной принцип предотвращения конфликтов Location Referencing: если маршрут или событие заблокированы для редактирования редактором в версии базы данных, эти маршруты или события не могут быть отредактированы тем же человеком в другой версии базы данных или другими людьми в любой версии.

Включение предотвращения конфликтов

Предотвращение конфликтов поддерживается только для набора данных LRS сервис-ориентированной версии.

Традиционное управление версиями поддерживается в Location Referencing, но предотвращение конфликтов недоступно в наборах данных с традиционным управлением версиями.

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

Инструмент Изменить LRS, Предотвращение конфликтов включено
Включена опция Предотвращение конфликтов

Если предотвращение конфликтов включено, каждый инструмент редактирования автоматически получает блокировки, если они доступны, или предупреждает вас, когда блокировки не могут быть получены.

Редактирование маршрута и создание блокировки для предотвращения конфликтов

Следующий пример рабочего процесса предотвращения конфликтов показан с использованием Исключить маршрут. RouteX, RouteY и RouteZ часть LineXYZ. RouteX будет исключен.

Предотвращение конфликта и исключение маршрута
Маршруты - часть LineXYZ.
  1. Щелкните кнопку Идентифицировать маршрут Идентифицировать маршруты на вкладке Location Referencing и щелкните RouteX.

    Появится диалоговое окно Идентифицировать маршрут.

    Диалоговое окно Идентифицировать маршрут
    Идентификатор маршрута показывает, что блокировок не существует.
  2. Убедитесь, что на выбранном маршруте или линии нет блокировок.

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

  3. Убедившись, что на маршруте нет блокировок, щелкните Исключить Исключить на вкладке Location Referencing.

    Появляется панель Исключить маршрут.

  4. На панели Исключить маршрут щелкните кнопку Имя маршрута "От" и щелкните маршрут, который вы хотите исключить.

    После выбора имени маршрута в верхней части панели появляется сообщение о получении блокировки.

    Панель Исключить маршрут, блокировка получена
    Полученные маршруты подтверждаются на панели Исключить маршрут

    Сообщение о блокировке содержит следующую информацию:

    • Блокировка была получена на LineXYZ.
      Примечание:

      RouteX - часть LineXYZ.

      Поскольку RouteY и RouteZ являются частью LineXYZ, они также заблокированы для редактирования.

    • Блокировка была получена пользователем портала User11.
    • Блокировка LineXYZ для версии базы данных Version1 была получена пользователем User11.
    Примечание:

    Вы автоматически перенесете существующий маршрут или блокировку линии от другого человека на себя, если выполняются следующие условия:

    • Версия, принадлежащая другому лицу, является общедоступной.
    • Вы делаете запрос в той же версии, в которой у другого человека есть блокировка.
    • Если версия блокировки является дочерней, то у владельца блокировки в настоящее время нет открытого сеанса редактирования в этой версии. Если версия блокировки является версией по умолчанию, то у владельца блокировки в настоящее время нет открытого сеанса чтения в версии по умолчанию.

  5. При необходимости убедитесь, что блокировка существует, щелкнув Идентифицировать маршрут на вкладке Location Referencing и щелкнув снова RouteX.
    Диалоговое окно Идентифицировать маршрут, раздел Блокировка LRS
    Идентификатор маршрута показывает, что маршрут заблокирован.

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

  6. При необходимости определите существующие блокировки с помощью кнопки Блокировки LRS Таблица блокировок LRS на вкладке Location Referencing.

    Появляется таблица Блокировки LRS.

    Таблица Блокировки LRS
    Таблица Блокировки показывает наличие недавно полученной блокировки.

Предотвращение конфликтов

Как описано ранее, логика предотвращения конфликтов позволяет редактировать маршрут или линию и событие только одному человеку в одной версии за раз.

Например, если User22 пытается исключить RouteX, в то время как RouteX заблокирован User11, появится следующее сообщение:

Панель Исключить маршрут, блокировка не получена
Маршрут не может быть отредактирован User22, когда User11 имеет блокировки.

В сообщении содержится следующая информация:

  • LineXYZ нельзя редактировать, потому что блокировка принадлежит кому-то другому.
    Примечание:

    RouteX - часть LineXYZ.

  • Блокировка уже получена пользователем портала User11.
  • Блокировка LineXYZ для версии базы данных Version1 уже получена пользователем User11.

Идентификатор маршрута Идентифицировать маршруты показывает следующий результат:

Диалоговое окно Идентифицировать маршрут, существующие блокировки
Маршрут не редактируется из-за существующих блокировок.

Появляется таблица Блокировки LRS со списком блокировок.

Таблица Блокировки LRS
Появляется таблица Блокировки LRS со списком блокировок.

Убедитесь, что самая последняя версия набора данных отредактирована

Отредактируйте самую последнюю версию базы данных, чтобы все последние изменения данных присутствовали в редактируемой версии. Чтобы подтвердить самую последнюю версию, Location Referencing перед получением блокировки проверяет, требуется ли согласование с версией по умолчанию. Когда версию необходимо согласовать с версией по умолчанию, появляется следующее сообщение:

Диалоговое окно Получить блокировки
Согласовать с версией по умолчанию.

При щелчке по кнопке Да при появлении сообщения Получить блокировки версия редактора согласуется с версией по умолчанию.

Примечание:

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

Узнайте больше о согласовании и публикации изменений в версии ветви, разрешении конфликтов и публикации изменений.

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

Общая логика предотвращения конфликтов при редактировании маршрута показана на следующей схеме:

Блок-схема Предотвращения конфликтов
Отображается Предотвращение конфликтов в Location Referencing, когда начинается редактирование.

Типы блокировок

Предотвращение конфликтов в Location Referencing имеет два типа блокировок:

  • Блокировки маршрута и линии
  • Блокировки события

Блокировки маршрута и линии

Блокировка маршрута и линии не позволяет другим людям редактировать маршрут и события на этом маршруте, пока маршрут редактируется.

Блокировки маршрута и линии имеют следующие свойства:

  • Блокировка называется блокировкой маршрута, когда редактируется маршрут в непрерывной сети.
  • Блокировка линии получается при редактировании маршрута в инженерной сети, поддерживающей линии. Завершенная линия и все ее маршруты заблокированы. Блокировка линии означает, что если один человек редактирует один из нескольких маршрутов, составляющих линию, никто другой не может редактировать любой другой маршрут на этой линии.
  • Заблокированный маршрут означает, что только человек с блокировкой может редактировать маршрут и его события в версии, в которой была получена блокировка, если не выполняются условия передачи блокировки.

Блокировки события

Блокировка событий не позволяет другим людям редактировать слой событий для определенного маршрута. Блокировка событий устанавливается для слоя событий маршрута или линии.

Если User1 заблокировал Слой событий1 для Route1 в Version1, применяется следующее:

  • Никто другой не может редактировать Слой событий1 для Route1 ни в каких версиях.
  • User1 не может редактировать Слой событий1 для Route1 ни в каких других версиях, кроме Version1.
  • Другие люди могут получить блокировки на других слоях событий (кроме Слоя событий1) для Route1 или для любого другого маршрута, если для этого маршрута не существует блокировки маршрута.
  • Никто не может получить блокировку маршрута, если несколько человек имеют блокировки событий для этого маршрута.
  • Другие люди могут получить блокировки на Слое событий1 для любых других маршрутов, для которых могут быть получены блокировки.
  • При редактировании события (точки или линии), зарегистрированного в сети, поддерживающей линии, устанавливается блокировка события на линии.
  • При редактировании события (точки или линии), зарегистрированного в сети, не поддерживающей линии, на маршруте устанавливается блокировка события.
Примечание:
  • Если существует несколько временных интервалов маршрута или события, полученная блокировка действительна для всех временных интервалов.
  • Блокировки получаются инструментами геообработки по мере необходимости.

Логика предотвращения конфликтов, когда для маршрута существуют события, показана на следующей схеме:

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

Предотвращение конфликтов при редактировании центральной линии

Там, где существуют параллельные маршруты, маршруты блокируются на основе общих центральных линий. Следующий рисунок демонстрирует эту концепцию:

Предотвращение конфликтов и редактирование центральной линии
Показана блокировка параллельных маршрутов.

  • Если Route X редактируется, блокировка устанавливается на Route X, и никто другой не может получить блокировку на Route Y, поскольку они имеют общую центральную линию C2.
  • Если Route Y редактируется, блокировка устанавливается на Route Y, и никто другой не может получить блокировку на Route X, поскольку они имеют общую центральную линию C2.
  • Если редактируется центральная линия C1 (картографическое выравнивание или разбиение центральной линии), блокируется только Route X.
  • Если редактируется центральная линия C3, блокируется только Route Y.
  • Если редактируется центральная линия C2, оба Route X и Route Y блокируются, поскольку C2 является общей центральной линией между этими двумя маршрутами.

Снять блокировки

Блокировки снимаются автоматически в следующих случаях:

  • Версия, содержащая блокировки, публикуется в версии по умолчанию.
  • Версия, содержащая блокировки, удалена.
  • Блокировки, полученные в версии по умолчанию в результате использования редактирования маршрута, центральной линии или инструментов геообработки, снимаются после завершения выполнения.

Вы можете вручную снимать блокировки в зависимости от их статуса снятия.

Если значение статуса возможности снятия равно Да, вы можете снять блокировку, выполнив следующие действия:

Если значением статуса возможности снятия является Нет, блокировка не может быть снята.

Если значением статуса возможности снятия является При публикации, блокировка может быть снята только после публикации в версии по умолчанию.

Краткое изложение правил предотвращения конфликтов

Когда предотвращение конфликтов включено, вы можете редактировать маршрут после получения блокировки на этом маршруте при следующих условиях:

  • Ни у кого нет блокировки на этом маршруте ни в одной из версий базы данных.
  • У того же человека уже есть блокировка маршрута на этом маршруте в той же версии базы данных, с которой он работает в данный момент.

Когда включено предотвращение конфликтов и не выполняются условия передачи блокировки, вы не можете редактировать маршрут при следующих условиях:

  • Необходима сверка с версией по умолчанию.
  • Конфликты базы геоданных существуют в текущей версии.
  • Маршрут уже заблокирован другим человеком.
  • У того же человека уже есть блокировка маршрута на этом маршруте в другой версии базы данных, в которой он сейчас работает.
  • Другой человек имеет блокировки событий на этом маршруте (при условии, что условия передачи блокировки не выполняются).
  • У того же человека есть блокировки событий на этом маршруте в другой версии базы данных.

Когда предотвращение конфликтов включено, вы можете редактировать событие после получения блокировки на этом слое событий при следующих условиях:

  • Ни у кого нет блокировки на этом слое событий для маршрута, на котором находится событие в любой версии базы данных (при условии, что условия передачи блокировки не выполняются).
  • У этого же человека уже есть блокировка события в той же версии базы данных, в которой он сейчас работает (для маршрута, на котором находится событие).
  • У этого же человека уже есть блокировка маршрута или линии в той же версии (для маршрута или линии, на которой находится событие).

Когда предотвращение конфликтов включено, вы не можете редактировать событие при следующих условиях:

  • Необходима сверка с версией по умолчанию.
  • Конфликты базы геоданных существуют в текущей версии.
  • Слой события уже заблокирован другим человеком для маршрута, на котором находится событие (при условии, что условия передачи блокировки не выполняются).
  • Слой события уже заблокирован тем же человеком для маршрута, на котором находится событие, но в другой версии.
  • Маршрут, на котором находится событие, уже заблокирован другим человеком (при условии, что условия передачи блокировки не выполняются).
  • Маршрут, на котором находится событие, уже заблокирован тем же человеком, но в другой версии.