Редактирование фабрики участков и работа с версиями
Эта тема относится только к ArcGIS for Desktop Standard и ArcGIS for Desktop Advanced.
Набор данных участков поддерживает редактирование в версиях первого дочернего уровня по отношению к версии default. Набор данных участков не поддерживает редактирование в дочерних версиях.
Редактирование набора данных участков и состояние версий
Набор данных участков должен быть зарегистрирован как версионный до того, как он сможет быть отредактирован в базе геоданных ArcSDE. Как только набор данных участков зарегистрирован как версионный, вы можете выполнять создание версий для редактирования набора участков. Версия базы геоданных является ее отражением, при редактировании версии все внесенные изменения немедленно вступают в силу. Другие пользователи, подключенные к версии, будут видеть все изменения после выполнения обновления. Однако пользователи, подключенные к другим версиям, не будут видеть изменения, которые были выполнены в дочерней версии, пока они не будут закреплены в версии по умолчанию.
Когда набор данных регистрируется как версионный, создаются две дельта-таблицы (delta table): таблица A (или Adds – добавления) – для добавления данных и изменений и таблица D (или Deletes – удаления) для удаления. Каждый раз, когда вы обновляете или удаляете записи в наборе данных, строки будут добавляться в одну или несколько таблиц и новое состояние версии будет создано. Таким образом, в версионный набор данных входит исходная таблица (она называется основная или базовая) и все изменения в дельта-таблицах.
При редактировании участков каждое изменение сохраняется в XML-потоке задачи. Когда сеанс редактирования сохраняется, XML-поток закрепляется в наборе данных участков в виде одиночной правки и создается новое состояние версии.
Версии набора данных участков и блокировка редактирования
При редактировании набор данных участков блокируется. Когда набор данных участков заблокирован на редактирование, он не может быть открыт в этой или в другой версии до тех пор, пока блокировка не будет снята. Однако несистемные поля в таблицах атрибутов участков, точек, линий и опорных точек заблокированного набора участков все же могут быть изменены. Если одинаковое поле будет отредактировано в нескольких версиях, то потребуется выполнить разрешение конфликтов, когда версии будут согласованы.
Просмотреть, какие поля можно редактировать при наличии блокировки таблиц атрибутов участков.
Если участки редактируются в другой версии, эти участки отображаются заблокированными для редактирования, с помощью специального значка (заблокировано) в окне Проводник участков (Parcel Explorer). Таким образом, участки, которые редактируются, будут заблокированы для правки в других версиях. Блокировки на редактирование участков будут сняты, как только версия, в которой редактировался участок, будет закреплена в версии по умолчанию.
Ниже представлены правила, управляющие поведением заблокированных участков в многопользовательской среде:
- Вы не можете открыть участки, которые редактируются в другой версии. Вы можете получить доступ к участкам с блокировками на редактирование только после того, как версия будет закреплена в версии по умолчанию. Когда версия согласовывается с версией по умолчанию, все обновления и изменения, выполненные в версии, будут закреплены в версии по умолчанию и блокировки участков будут сняты.
- Если участок был ранее отредактирован в той же версии, с которой вы сейчас работаете, он будет отмечен специальной иконкой (не заблокирован) в окне Проводник участков (Parcel Explorer).
- Если участок был ранее отредактирован в другой версии, которая уже опубликована, он будет отмечен специальной иконкой (не заблокирован) в той версии, с которой вы работаете в текущий момент.
- Если участки были отредактированы в другой версии, и версия была закреплена в версии по умолчанию, вы можете выполнять редактирование этих участков в вашей версии после согласования с версией по умолчанию.
- Если участок есть в списке заблокированных в окне Проводник участков, вы можете щёлкнуть на участке в окне Проводник участков, чтобы увидеть, какой пользователь и в какой версии редактирует участок. Имя пользователя и имя версии отображаются в правой части панели статуса в окне ArcMap.
|
Участок доступен для редактирования. |
|
Участок сейчас редактируется. |
|
Участок был отредактирован и сейчас не заблокирован. |
|
Участок был отредактирован в этой версии или в другой версии данных. |
Разрешение конфликтов между версиями наборов данных участков
После завершения редактирования версии, вы можете синхронизировать изменения с версией по умолчанию. Это может быть выполнено в процессе согласования и закрепления. Разрешение конфликтов обнаруживает конфликты между вашей версией и версией по умолчанию. Конфликты возникают, когда версия по умолчанию была изменена после создания версии и изменения конфликтуют с вашими правками. Например, для набора данных участков, уравнивание, запущенное для перекрывающихся областей, приведет к конфликту координат. Разрешение конфликта всегда производится в пользу дочерней версии.
Таблица задач набора данных участков не является версионной таблицей, а потому не является объектом для разрешения конфликтов для версий наборов данных участков.
Более подробно о разрешении конфликтов версий
Рекомендуется выполнять частое разрешение конфликтов наборов данных участков с версией по умолчанию. Когда дочерняя версия закрепляется в версии по умолчанию и производится согласование, дочерняя версия получает обновления, которые были внесены после закрепления других дочерних версий в версии по умолчанию.
Правки и обновления данных об участках обычно производятся в виде длинных транзакций. В наборе данных участков правки участков могут производиться в течении долгого времени. Разрешение конфликтов версий будет производить обновление версий, перенося новые актуальные данные из версии по умолчанию. Это очень важно для продолжительного редактирования версионных наборов данных участков.
Ниже приведены несколько примеров обновлений, которые могут быть получены при разрешении конфликтов версионного набора данных участков с версией по умолчанию:
- Обновленные координаты для точек участков (уравнивание по методу наименьших квадратов, запущенное в версии по умолчанию или закрепленное из другой дочерней версии)
- Новые участки, созданные в версии по умолчанию или закрепленные в другой дочерней версии
- Обновленные или новые опорные точки, созданные в версии по умолчанию или закрепленные в других дочерних версиях
Разрешение конфликтов
При разрешении конфликтов версий набора данных участков с версией по умолчанию, конфликты будут обнаружены в следующих случаях:
- Координаты точек изменились по сравнению с версией по умолчанию.
- Значения атрибутов в несистемных полях отличаются от версии по умолчанию.
Конфликты в координатах точек могут произойти по нескольким причинам:
- В версии по умолчанию и в дочерней версии было выполнено уравнивание набора данных участков.
- Уравнивание набора данных участков было выполнено в двух дочерних версиях, одна из которых уже прошла процесс согласования с версией по умолчанию, а другая проходит его в настоящий момент.
В наборе данных участков, конфликты координат всегда разрешаются в пользу последнего набора уравненных координат. Таким образом, если дочерняя версия был уравнена, то следующее будет являться истиной:
- Уравненные координаты в версии по умолчанию будут заменены координатами из дочерней версии.
- Конфликты в координатах опорных точек будут разрешены в пользу дочерней версии.
Синхронизация версий и набора данных участков
Когда версия с набором данных участков закрепляется, снимаются все блокировки участков. Если существую задачи, созданные в другой версии, статус задачи будет изменен на Выполнена (Committed). Выполненная задача может быть удалена из рабочего журнала. Выполненная задача не может быть открыта снова, но свойства задачи, такие как участки, которые были использованы в задаче, остаются видимыми.
Для навигации к выполненной задаче, вам потребуется добавить следующие пустые поля BLOB к таблице задач:
- CommittedObjs
- LocalControl
Как только эти поля присутствуют в таблице задач, вы можете выполнять масштабирование и перемещение к выполненным задачам.
Если в рабочем журнале набора данных участков в версии по умолчанию имеются какие-либо активные задания, перед согласованием версий и закреплением дочерней версии необходимо их применить. Активные задания в версии набора данных участков по умолчанию препятствуют согласованию и закреплению дочерней версии. Статус каждого задания отображается в поле Статус (Status) на диалоговом окне Рабочий журнал (Job Book). Для применения задания добавьте команду Применить задание (Commit Job) в категории Участок (Parcel) на закладке Команды (Commands) диалогового окна Настройка (Customize). Выберите задание и щелкните команду Применить задание (Commit Job), при этом изменения будут применены, а блокировки – убраны. Диалоговое окно Настройка (Customize) открывается щелчком пункта меню Настройка(Customize) > Режим настройки (Customize Mode).
Разрешения, версии и набор данных участков
Когда набор данных участков создается в версионной среде базы геоданных, следует осторожно выдавать права на редактирование набора участков, для любой версии базы данных, в которой могут быть выполнены правки участков. Так как процессы, выполненные в версии, такие как разрешение конфликтов или ее удаление могут повлиять на набор данных участков. Так как права на версию не зависят от прав на набор данных участков, пользователь должен иметь права на согласование, закрепление или удаление версий при отсутствии прав на редактирование набора в этой версии. Когда происходит несовпадение прав, могут завершиться с ошибкой операции над версией (согласование или закрепление) или данные набора данных участков могут быть испорчены (например, при удалении версии).
Любая многоверсионная система, содержащая набор данных участков, должна иметь следующие выражения, всегда установленные на True (Истина): Любой пользователь, выполняющий операции над версией, затрагивающие набор данных участков внутри этой версии, обязан иметь права доступа на изменение данного набора участков, и любого связанного с ним класса пространственных объектов.
Применительно к версиям, для описания пользовательского доступа используется термин разрешение (permission); применительно к таблицам и наборам данных в базе данных используется термин право доступа (privilege).
Разрешения для версий
Версия может быть создана с одним из трех вариантов настроек разрешений. Эти разрешения применяются дополнительно к правам доступа, настроенным для отдельных наборов данных; например, пользователь может редактировать объекты в наборе данных в версии, если он имеет возможность обновления и версии и набора данных.
Существуют три варианта настроек:
- Частный доступ: Только владелец версии может просматривать и редактировать наборы данных в версии. Только владелец версии может выполнять операции над версией (такие как удаление или закрепление).
- Защищенный доступ: Любой пользователь может просматривать наборы данных в версии, но только владелец может выполнять их редактирование. Только владелец версии может выполнять операции над версией.
- Общий доступ: Все пользователи могут просматривать и редактировать наборы данных в версии. Все пользователи могут выполнять операции над версией.
Права доступа и набор данных участков
Каждый набор данных участков должен быть создан в наборе классов. Владелец набора автоматически получает права доступа на обновление. Другие пользователи могут получить права доступа для набора данных участков, если эти права будут изменены для набора классов, в котором располагается набор данных участков. В таком случае, набор данных участков ведет себя так же, как и любые другие классы объектов в наборе классов.
Для классов, которые не созданы в пределах набора классов, права доступа для конкретных пользователей могут быть настроены напрямую.
Права доступа, которые могут быть выданы для отдельных наборов классов:
- None (по умолчанию): Пользователь не может просматривать или редактировать набор данных.
- Select: Пользователь может выполнять чтение данных и запросы к ним.
- Select, Update, Insert, Delete: Пользователь имеет полные привилегии на чтение/запись набора данных.
Типы правок в наборе данных участков
Правки в наборе данных участков бывают двух видов:
- Правки отдельных классов набора участков (например, участков, линий или опорных точек), которые можно выполнять с помощью Редактора участков (Parcel Editor).
- Другие классы объектов могут быть связаны c набором данных участков. Система может затем быть использована для распространения результатов уравнивания по методу наименьших квадратов на эти классы объектов, изменяя их геометрию.
В первом случае пользователь, выполняющий редактирование, должен обладать правами доступа на набор классов объектов, который содержит соответствующий набор данных участков. Во втором случае пользователь должен обладать правами доступа на обновление и набора данных участков и связанных классов объектов.
Получение прав доступа на обновление набора данных участков не обязательно, если не предполагается редактировать набор данных участков или связанные классы объектов в версии, которая будет согласована, закреплена или удалена.
Ни рисунке ниже показаны все разрешения и права доступа, которые должны быть выданы пользователю для выполнения операций с версией, в которой присутствует набор данных участков и связанные классы объектов, вне зависимости от того, планируется ли редактирование дочерней версии или версии по умолчанию.