Доступно с лицензией Standard или Advanced.
Конфликты могут быть обнаружены, когда именованная версия согласована с родительской версией. Если в процессе согласования обнаруживаются конфликты, они изначально разрешаются в пользу редактируемой версии и могут быть просмотрены в виде Конфликты.
Конфликты возникают в следующих случаях:
- Один и тот же объект обновляется в текущей версии, которая редактируется, и в целевой версии.
- Один и тот же объект обновляется в одной версии и удаляется в другой.
- Топологически связанный объект или класс отношений изменяется в текущей редактируемой версии и в целевой версии.
Вид Конфликты содержит все конфликтующие классы и их конфликтующие объекты или строки и позволяет делать следующее:
- Определить, какие поля или строки конфликтуют.
- Просмотреть конфликты.
- Пометить конфликты, как просмотренные и не просмотренные.
- Разрешить конфликты путем указания того, какое представление следует использовать для замены пространственных объектов или атрибутов.
Закончив согласование и просмотр конфликтов, можно завершить процесс внесения изменений, закрепив изменения в целевой версии.
Откройте вид Конфликтов
Выполните следующие действия, чтобы открыть вид Конфликтов:
- На панели Содержание щелкните кнопку По источнику данных .
- Убедитесь, что вы подключены к именованной версии. Чтобы изменить версию, щелкните правой кнопкой мыши источник данных многопользовательской базы геоданных и щелкните Изменить версию .
- На вкладке Версионность щелкните кнопку Согласовать и завершите процесс согласования. Если во время согласования обнаруживаются конфликты, появляется запрос с вопросом, хотите ли вы просмотреть конфликты. При щелчке по кнопке Да открывается вид Конфликты.
Вид Конфликты можно закрепить в любой части приложения или расположить как плавающее окно. Этот позволяет взаимодействовать с видом Карта и одновременно просматривать и изучать данные.
Использование вида Конфликты
В виде Конфликты содержатся все конфликтующие классы объектов, а также их объекты и строки, которые находятся в конфликте. Конфликты организованы по источнику данных, классу, категории конфликтов и ObjectID. Рабочие области для всех карт в проекте перечислены в виде Конфликты. Классы конфликтов представляют собой конфликтующие классы для всей базы геоданных.
Вид Конфликты состоит из трех основных разделов для работы с конфликтами. Список конфликтов содержит все классы конфликтов и конфликтующие объекты. Информационная сетка показывает атрибуты и значения для всех представлений конфликтующего объекта, выбранного из списка конфликтов. Вьюер Показать конфликты используется для просмотра и сравнения различных представлений при редактировании геометрии на карте.
Обратитесь к изображению и таблице ниже, чтобы просмотреть элементы вида Конфликтов:
Элемент | Описание |
---|---|
1 | Список конфликтов - раздел списка конфликтов содержит все классы конфликтов и конфликтующие объекты. |
2 | Информационная сетка - раздел информационной сетки показывает атрибуты и значения для всех представлений конфликтующего объекта. |
3 | Вьюер Показать конфликты - кнопка Показать конфликты открывает раздел вьюера просмотра конфликтов в нижней части вида Конфликты. В нем можно просмотреть отображение конфликтов на карте, а также перемещаться и идентифицировать отображаемые пространственные объекты. |
4 | Фильтр просмотренных конфликтов - эта отметка в верхней части списка конфликтов фильтрует список, показывая только конфликты, которые не были рассмотрены. |
5 | Красный индикатор - красный индикатор слева от строки означает наличие конфликта. Например, если геометрия объекта редактировалась в каждой версии, рядом с полем Shape появится красная точка. |
6 | Показать все - позволяет просматривать все поля. |
7 | Показать конфликты - позволяет просматривать только конфликтующие поля. |
8 | Показать кредиты для сервисных слоев - при щелчке по этой кнопке открывается диалоговое окно со списком поставщиков и создателей базовой карты. |
9 | Инструменты навигации Показать конфликты - следующие инструменты позволяют перемещаться и управлять отображаемой версией, а также перемещаться в окнах отображения конфликтов:
|
Список конфликтов
Все конфликты классов и объектов показаны в списке конфликтов в верхней левой части вида Конфликты.
Щелкните стрелку ниспадающего списка объектов , чтобы просмотреть конфликты для каждого объекта. Их можно разбить на следующие категории:
- Обновить-Удалить – объект был обновлен в текущей версии и удален в целевой.
- Удалить-Обновить – объект был удален в текущей версии и обновлен в целевой.
- Обновить-Обновить – объект был обновлен в обеих версиях: текущей и целевой.
Когда вы выбираете отдельный объект ObjectID в списке конфликтов, поля и атрибуты в версиях объекта Текущая, Версия до согласования, Целевая и Общая родительская отображаются в информационной сетке в правой части вида Конфликты.
Подсказка:
Непроверенные конфликты выделены полужирным шрифтом. Рассмотренные конфликты больше не выделяются жирным шрифтом.
Информационная сетка
В информационной сетке вы можете просмотреть различные представления значений атрибутов для выбранного объекта. Когда у вас имеются атрибуты и их значения для всех представлений конфликтного объекта, то вы можете видеть, как атрибутивные значения отличаются между версиями. Это может помочь вам выбрать, какое представление данных вам нужно сохранить. Все поля отображаются в информационной сетке, а слева от строки появляется красный индикатор для конфликтующих атрибутов.
В следующих столбцах отображаются значения атрибутов для различных представлений объекта:
- Текущая – представляет текущее состояние объектов и атрибутов в именованной версии. Оно включает в себя любые внесенные вами изменения.
- Версия до согласования - представляет, как объекты отображались в вашей версии до согласования.
- Целевая – представляет объекты и их атрибуты в целевой версии.
- Общий предок – представляет объекты и атрибуты, когда версия была первоначально создана или во время последней операции согласования.
Если какой-то объект был удален в любой версии, то для значения атрибута этой версии появится надпись <Deleted>. Если объекты были вставлены в именованную версию, и они становятся конфликтующими, Did not exist отображается для столбцов Цель и Общий предок.
Подсказка:
Все поля отображаются в информационной сетке в виде Конфликты; однако поля с примененным фильтром конфликта на уровне поля не идентифицируются как конфликтующие и не отображают красный индикатор.
Показать конфликты
Кнопка Показать конфликты открывает раздел вьюера просмотра конфликтов в нижней части вида Конфликты. Вьюер просмотра конфликтов позволяет просматривать конфликты в том виде, в каком они появляются на карте, а также перемещаться и определять объекты на экране. Отображаемые конфликты основаны на индивидуальном объекте ObjectID, выбранном в списке конфликтов.
Инструменты навигации по отображению конфликтов расположены под вьюером Показать конфликты. Эти инструменты содержат два раскрывающихся меню, которые позволяют вам изменять сравниваемые версии, где опции версии включают версии: Текущую, Версию до согласования, Целевую или Общую родительскую.
Содержание дисплея конфликтов зависит от того, присутствует ли класс конфликтов в активной карте:
- Когда класс конфликтов содержится в активной карте, дисплей конфликтов отображает все слои карты, использует символы карты и включает базовую карту.
- Когда класс конфликтов в активной карте отсутствует, дисплей конфликтов отображает только конфликтующий слой, использует символы по умолчанию и не включает базовую карту.
Пометить конфликты, как просмотренные или не просмотренные.
Послеопределения того, какие поля или строки конфликтуют, вы можете пометить пространственный объект как просмотренный. Вы также можете вести учет того, какие объекты в этом списке были просмотрены: отмеченные как просмотренные объекты больше не отображаются полужирным шрифтом.
Чтобы вернуться к конфликтующему объекту позднее, вы можете щелкнуть правой кнопкой мыши ObjectID в списке Конфликты, а затем щелкнуть Отметить как не просмотренный. После этого объект снова будет выделен жирной границей.
Если вы поставите отметку Фильтровать просмотренные конфликты вверху диалогового окна, в диалоге отобразятся только ранее не просмотренные конфликты.
Разрешение конфликтов
При устранении конфликтов вы решаете, какое представление пространственных объектов или атрибутов следует оставить. Независимо от того, выполняется согласование в пользу целевой или редактируемой версии, можно указать, какое представление следует сохранить: представление текущей версии (отображение в версии до согласования), представление целевой версии (отображение изменений, внесенных другим редактором) или представление общего предка (отображение объекта или атрибута в целевой версии).
В виде Конфликты щелкните правой кнопкой мыши версию, набор данных, объект или атрибут и выберите один из следующих вариантов замены:
- Заменить версией до согласования
- Заменить целевой версией
- Заменить версией общего предка
Ниже приведены различные уровни, на которых можно использовать варианты замены для разрешения конфликтов:
- Замещение атрибутов:
Это происходит на уровне поля. При наличии конфликтов в атрибутах достаточно заменить значение атрибута в текущей версии значением из представления текущей версии, версии до согласования, целевой версии или версии общего предка. Для этого щелкните правой кнопкой мыши на атрибуте в конфликте и выберите в меню необходимую опцию.
- Замещение пространственных объектов:
Это происходит на уровне строки. Можно заменить весь объект представлением объекта в текущей версии, версии до согласования, целевой версии или версии общего предка. Это значит, что все поля в конфликте будут заменены.
- Замещение на уровне классов:
Чтобы разрешить конфликт, можно заменить текущее представление всего класса объектов представлением объекта в текущей версии, версии до согласования, целевой версии или версии общего предка. Это приведет к одновременной замене всех конфликтующих объектов и атрибутов, позволяя быстро обновить и заменить конфликтующие объекты. Если в списке Конфликты присутствует несколько объектов, все они заменяются выбранной версией.
Чтобы выбрать опцию замены на уровне класса, щелкните правой кнопкой мыши имя класса объектов в списке Конфликты и выберите необходимую версию.
- Полное замещение:
Это замещение на корневом уровне. Вследствие использования данной опции замещения все конфликтные объекты и классы объектов в списке заменяются выбранным представлением. При наличии нескольких классов объектов и нескольких объектов в конфликте все они заменяются выбранной версией.
Щелкните правой кнопкой мыши версию и информацию о подключении наверху списка Конфликты и выберите версию, которой необходимо заменить все конфликты.
Фильтрация конфликтов на уровне поля
В некоторых случаях при работе с традиционным управлением версиями может потребоваться сохранять изменения, примененные к полю или набору полей при обнаружении конфликтов во время согласования. Далее приводятся примеры, когда может быть полезно фильтровать конфликты, обнаруженные в поле при согласовании:
- Выполняется пакетное обновление по одному полю в разных версиях.
- Информация записывается в поле на основе изменений, выполненных в данной версии.
Чтобы предотвратить выявление конфликтов при обновлении одного и того же атрибута в родительской и дочерней версиях, можно использовать инструмент Добавить фильтр конфликтов полей, чтобы задать фильтрацию от конфликтов для набора полей. Фильтр конфликтов полей позволяет отметить тегом поле или набор полей в пределах классов объектов, чтобы отфильтровать их при определении конфликтов. Если изменяются только поля с фильтрами конфликтов, то во время операции согласования конфликты не возвращаются. Это применимо только в случае, если вы определяете конфликты по атрибуту.
Примечание:
В виде Конфликты отображаются все поля; однако поля, к которым применен фильтр конфликтов, не идентифицируются как конфликтующие, и в них отсутствует красный индикатор.
После согласования ваших изменений значение в поле, имеющем фильтр конфликта, будет зависеть от того, в пользу какой версии было выбрано проведение согласования – в пользу целевой или в пользу редактируемой. Если выбрано согласование в пользу целевой версии, поля с фильтром конфликтов получат значение из целевой версии. Если выбрано согласование в пользу редактируемой версии, поля с фильтром конфликтов получат значение из редактируемой версии.
Инструмент Удалить фильтр конфликта полей может удалить этих фильтры из указанных полей.
Для того чтобы узнать, заданы ли фильтры конфликтов для класса объектов или таблицы, можно использовать функцию Python ListFieldConflictFilters.
Примечание:
Если для класса объектов или таблицы задан фильтр конфликтов полей, клиенты ArcGIS версий ранее 10.2.1 не смогут открыть эти класс объектов или таблицу. Для поля можно задавать фильтры конфликта полей с последующим их удалением после проведения согласования версий, если требуется, чтобы эти данные были доступны для более ранних версий ArcGIS.
Разрешение конфликтов с правилами атрибутов
Правила атрибутов улучшают процесс редактирования и обеспечивают целостность наборов данных базы геоданных. Согласование класса пространственных объектов с традиционными версиями с немедленным вычислением или правилами ограничений оценивает эти правила атрибутов. Если нарушено правило ограничения, появится ошибка правила ограничения, а процесс согласования завершен не будет. Согласуйте конфликты по строке, чтобы избежать ошибок правила ограничения.
Разрешение конфликтов с классами отношений
Классы отношений могут быть использованы для обеспечения пространственной целостности между связанными объектами. Если в классе отношений участвуют версионные источники данных, то в процессе согласования эти данные проверяются на предмет их ссылочной целостности. Если пространственная целостность нарушена, участвующие объекты будут выведены, как конфликты, и их можно будет просмотреть в виде Конфликты.
Удаление объекта из класса отношений объектов-источников может вызвать отправку сообщения на удаление объекта из класса отношений объектов-адресатов. Поэтому вам следует учитывать возможные последствия простой замены конфликтов, возникающих в классах пространственных объектов, участвующих в классах отношений.
Приведем пример того, когда между классами отношений может возникнуть конфликт:
- В родительской версии вы добавляете целевой объект и связываете его с объектом в исходном классе.
- В дочерней версии вы удаляете тот же исходный объект, который использовался для связи с новым целевым объектом.
- Когда изменения согласованы, в исходном классе обнаруживается конфликт удалить-Обновить.
Другой пример:
- В наборе классов объектов электросетей вы удалили столб, который имеет связь с трансформатором: это вызовет удаление связанного со столбом трансформатора.
- В другой сессии редактирования, начавшейся в то же время, редактор изменил атрибуты трансформатора, который только что был удален, поскольку вы удалили связанный с ним столб.
- При согласовании изменений обнаруживается конфликт обновить-удалить в исходном и целевом классах.
В этом последнем примере, если второй пользователь решит заменить все конфликты представлениями сеанса редактирования, то столб и трансформатор, удаленные во время этого сеанса редактирования, будут созданы заново.