Administrar conflictos de versiones en rama

Disponible con una licencia Standard o Advanced.

Los conflictos se pueden descubrir cuando la versión con nombre se concilia con la versión predeterminada. Si se detectan conflictos durante el proceso de conciliación, estos se resuelven inicialmente a favor de la versión de edición y se pueden revisar en la vista Conflictos.

Los conflictos se producen en los siguientes casos:

  • La misma entidad se actualiza tanto en la versión de edición actual como en la versión de destino
  • La misma entidad se actualiza en una versión y se elimina en la otra
  • Una clase de relación o entidad relacionada topológicamente se modifica en la versión de edición actual y en la versión de destino

La vista Conflictos contiene todas las clases de conflicto y las entidades o filas en conflicto. En el versionado en rama, los conflictos se almacenan de forma persistente en una tabla propiedad del sistema llamada GDB_CONFLICTS. Esto le permite revisar los conflictos de uno en uno o, si es necesario, puede gestionar los conflictos en varias sesiones de edición, revisar y resolver conflictos y salir y volver más tarde para continuar realizando cambios con la vista Conflictos.

La vista Conflictos le permite realizar lo siguiente:

  • Determinar los campos o filas en conflicto
  • Ver los conflictos
  • Marcar los conflictos como revisados o no revisados
  • Resolver conflictos designando la representación que se utilizará para remplazar entidades o atributos
Precaución:

Si se administran conflictos en varias sesiones de edición, los conflictos no revisados se borran cuando se realiza una segunda operación de conciliación o publicación. Este proceso elimina el historial de resoluciones de conflictos.

Una vez que termine de conciliar y revisar los conflictos, puede completar el proceso de fusión publicando los cambios en la versión de destino.

Abrir la vista Conflictos

Siga estos pasos para abrir la vista Conflictos:

  1. En el panel Contenido, haga clic en el botón Lista por fuente de datos Lista por origen de datos.
  2. Asegúrese de tener conexión a una versión con nombre. Para cambiar de versión, haga clic con el botón derecho en la fuente de datos de la capa de entidades web ArcGIS Server y haga clic en Cambiar versión Cambiar versión.
  3. Haga clic en la pestaña Versionado en la cinta.
  4. Complete una de las siguientes opciones para abrir la vista Conflictos:
    • Haga clic en el botón Conciliar Conciliar y complete el proceso de conciliación. Si se descubren conflictos durante la conciliación, aparecerá un mensaje que le pregunta si desea revisar los conflictos. Al hacer clic en , se abrirá la vista Conflictos.
      Preguntar si se deben revisar los conflictos después de conciliar las versiones
    • Para seguir revisando y gestionando conflictos después de completar una conciliación, haga clic en el botón Administrador de conflictos Administrador de conflictos de la pestaña Versionado.

Es posible acoplar la vista Conflictos en cualquier lugar de la aplicación o posicionarla como ventana flotante. Le permite interactuar con una vista de mapa al mismo tiempo para ofrecer contexto y explorar más los datos.

Utilizar la vista Conflictos

La vista Conflictos contiene todas las clases de conflicto y las entidades o filas en conflicto. Los conflictos se organizan por la fuente de datos, la clase, la categoría de conflicto y el ObjectID. Los espacios de trabajo de todos los mapas del proyecto se enumeran en la vista Conflictos. Las clases de conflicto representan las capas de entidades web en conflicto con todo el servicio.

La vista Conflictos consta de tres secciones principales para trabajar con conflictos. La lista Conflictos contiene todas las clases de conflictos y entidades en conflicto. La cuadrícula de información muestra los atributos y valores de todas las representaciones de la entidad en conflicto seleccionadas en la lista Conflictos. El visor de visualización de conflictos se utiliza para ver y comparar las distintas representaciones para ediciones de geometría en un mapa.

Haga referencia a la imagen y la tabla que aparecen a continuación para revisar los elementos de la vista Conflictos:

Secciones y elementos numerados en la vista Conflictos

AbstractDQ_ElementDescripción

1

Lista Conflictos: la sección de lista de conflictos contiene todas las clases de conflictos y entidades en conflicto.

2

Cuadrícula de información: la sección de cuadrícula de información muestra los atributos y valores de todas las representaciones de la entidad en conflicto.

3

Visor de visualización de conflictos: el visor de visualización de conflictos es una sección expandible ubicada en la parte inferior de la vista Conflictos. Esto permite ver los conflictos cuando aparecen en el mapa, así como desplazarse e identificar entidades en la visualización.

4

Filtrar conflictos revisados: si activa esta casilla en la parte superior de la vista, puede filtrar la lista para que muestre solamente los conflictos que aún no se han revisado.

5

Indicador rojo: un indicador rojo a la izquierda de la fila identifica un conflicto. Por ejemplo, si la geometría de la entidad se editó en cada versión, aparece un indicador rojo junto al campo Forma.

6

Mostrar todoMostrar todos los campos: le permite ver todos los campos.

7

Mostrar conflictosMostrar solo campos en conflicto: le permite ver solo los campos que están en conflicto.

8

Mostrar créditos para capas de servicios: al hacer clic en este icono, se abre un cuadro de diálogo que enumera los proveedores y creadores del mapa base.

9

Herramientas de navegación de Visualización de conflictos: las siguientes herramientas permiten navegar y controlar la versión que se muestra y navegar por las ventanas de visualización de conflictos:

  • Dos menús desplegables, uno para cada ventana de visualización, le permiten cambiar la pantalla para que muestre la versión Actual, Destino o Antecesora común.

  • Acercar Acercamiento fijo: aplica un acercamiento fijo al mapa.

  • Alejar Alejamiento fijo: aplica un alejamiento fijo al mapa.

  • Zoom a seleccionados Acercar a resultados: acerca el mapa para centrarlo en el objeto seleccionado.

  • Destacar seleccionados Destacar: el objeto seleccionado parpadeará brevemente en azul y cambiará a rojo en el visor de visualización de conflictos.

Elementos de la vista Conflictos

Lista de conflictos

Todas las entidades y clases en conflicto aparecen en la lista de conflictos del lado superior izquierdo de la vista Conflictos. Esta lista muestra el número total de conflictos para las capas de entidades web de todo el servicio.

Haga clic en la flecha desplegable Expandido de un objeto para ver los conflictos de cada entidad. Se dividen en las siguientes categorías:

  • Actualizar-Eliminar: la entidad se actualizó en la versión actual y se eliminó en la versión de destino.
  • Eliminar-Actualizar: la entidad se eliminó en la versión actual y se actualizó en la versión de destino.
  • Actualizar-Actualizar: la entidad se actualizó tanto en la versión actual como en la versión de destino.

Cuando selecciona un ObjectID de una entidad individual en la lista de conflictos, los campos y los atributos de la versión Actual, de Destino y la Antecesora común de la entidad aparecen en la cuadrícula informativa ubicada en el lado derecho de la vista Conflictos.

Sugerencia:

Los conflictos que no se han revisado se muestran en negrita. Los conflictos revisados ya no están en negrita.

Cuadrícula de información

En la cuadrícula de información, puede visualizar las distintas representaciones de valores de atributo para una entidad seleccionada. Tener a su disposición los atributos y valores de todas las representaciones de una entidad en conflicto permite ver cómo varían los valores de atributos entre versiones y ayuda a determinar la representación de los datos que desea conservar. Todos los campos se muestran en la cuadrícula de información y aparece un indicador rojo a la izquierda de la fila de los atributos que están en conflicto.

Las siguientes columnas muestran valores de atributos para distintas representaciones de la entidad:

  • Actual: representa el estado actual de las entidades y los atributos de la versión con nombre. Incluye cualquier edición que haya realizado.
  • Destino: representa las entidades y sus atributos en la versión predeterminada.
  • Antecesora común: representa las entidades y los atributos cuando se creó inicialmente la versión o en el momento de la última operación de conciliación.

Si se ha eliminado una entidad en alguna versión, aparecerá <Deleted> para el valor de atributo de esa versión. Si se han insertado entidades en la versión con nombre y se promueven a un conflicto, aparece Did not exist en las columnas Destino y Antecesora común.

Sugerencia:

Todos los campos se muestran en la cuadrícula de información de la vista Conflictos; sin embargo, los campos con un filtro de conflicto de nivel de campo aplicado no se identifican como en conflicto y no muestran un indicador rojo.

Visualización de conflicto

El botón Visualización de conflicto abre la sección del visor de conflictos en la parte inferior de la vista Conflictos. El visor de visualización de conflictos le permite ver los conflictos cuando aparecen en el mapa, así como desplazarse e identificar entidades en la visualización. Los conflictos que se muestran se basan en el ObjectID de la entidad individual seleccionada en la lista de conflictos.

Las herramientas de navegación de la visualización de conflictos se encuentran debajo del visor Visualización de conflictos. Estas herramientas contienen dos menús desplegables que le permiten cambiar las versiones que se están comparando, siendo las opciones de versión las versiones Actual, Destino o Antecesora común.

El contenido de la visualización de conflictos difiere en función de si la clase de conflicto está presente en el mapa activo:

  • Cuando la clase de conflicto está en el mapa activo, la visualización del conflicto muestra todas las capas del mapa, utiliza la simbología del mapa e incluye el mapa base.
  • Cuando la clase de conflicto no está en el mapa activo, la visualización de conflictos solo muestra la capa en conflicto, utiliza la simbología predeterminada y no incluye el mapa base.

Marcar los conflictos como revisados o no revisados

Cuando determine los campos o las filas que están en conflicto, puede marcar una entidad como revisada. Puede llevar un registro de las entidades de la lista que ha revisado, ya que aquellas marcadas como revisadas dejan de aparecer en negrita.

Para volver a un conflicto de entidad más tarde, haga clic con el botón derecho en el ObjectID en la lista de conflictos y haga clic en Marcar como no revisado. Esto hace que la entidad vuelva a aparecer en negrita.

Si hace clic en la casilla de verificación Filtrar conflictos revisados en la parte superior de la vista, puede filtrar la lista para que muestre solamente los conflictos que aún no se han revisado.

Con el versionado en rama también puede agregar una nota de revisión. Haga clic con el botón derecho en una entidad, haga clic en Agregar nota de revisión y escriba texto en el cuadro de texto Agregar nota de revisión. Para editar una nota de revisión existente, haga clic con el botón derecho en una entidad y haga clic en Editar nota de revisión.

Nota:

Las notas de revisión se borran en la siguiente operación de conciliación y publicación.

Resolver conflictos

Al resolver conflictos, usted decide qué representación de las entidades y atributos desea mantener. Después de la operación de conciliación, puede utilizar la vista Conflictos para especificar la representación que desea mantener. Tenga en cuenta que el uso de las opciones de sustitución en la vista Conflictos es el mismo que realizar una operación de edición.

En la vista Conflictos, haga clic con el botón derecho en una versión, un dataset, una entidad o un atributo y seleccione una de las siguientes opciones de sustitución:

  • Reemplazar con versión actual
  • Reemplazar con versión de destino
  • Reemplazar por versión de antepasado común

Menú contextual de Conflicto para la versión en rama

A continuación, se muestran diferentes niveles en los que puede utilizar las opciones de sustitución para resolver conflictos:

  • Reemplazo de atributo

    Esto ocurre en el nivel de campo. Si hay conflictos en atributos, solo puede reemplazar el valor del atributo en la versión actual por uno de la representación actual, de destino o antecesora común. Para hacer esto, haga clic con el botón derecho en el atributo en conflicto y haga clic en la opción del menú.

  • Reemplazo de entidad

    Ocurre en el nivel de fila. Puede reemplazar una entidad completa con la representación de la entidad en la versión actual, la de destino o la antecesora común. Significa que se reemplazan los campos en conflicto.

  • Reemplazo de nivel de clase

    Puede reemplazar la representación actual de la clase de entidad completa con la representación de la versión actual, de destino o antecesora común para resolver el conflicto. Esto reemplaza todas entidades y atributos en conflicto de una sola vez, lo que le permite actualizar y reemplazar con rapidez las entidades en conflicto. Si existen varias entidades en la lista Conflictos, todas se reemplazarán con la versión que elija.

    Para elegir una opción de reemplazo de nivel de clase, haga clic con el botón derecho en el nombre de la clase de entidad en la lista Conflictos y haga clic en la versión que desee utilizar.

  • Reemplazo completo

    Ocurre en el nivel de raíz. Esta opción reemplaza todas las entidades y clases de entidad en conflicto de la lista con la representación designada. Si tiene varias clases de entidad y objetos en conflicto, todos ellos se reemplazan con la versión que elija.

    Haga clic con el botón derecho en la información de versión y de conexión en la parte superior de la lista Conflictos y haga clic en la versión que desea utilizar para reemplazar todos los conflictos.

Filtrado de conflicto de nivel de campo

En algunos casos, puede que desee que las ediciones aplicadas a un campo o a un conjunto de campos se mantengan cuando se detecten conflictos durante la conciliación. Los siguientes ejemplos muestran casos en los que puede desear descartar conflictos detectados en un campo al realizar la conciliación:

  • Se realiza una actualización por lotes en un campo en diferentes versiones.
  • Se escribe información en un campo en función de las ediciones realizadas en la versión.

Para evitar que se identifiquen conflictos cuando se actualiza el mismo atributo en las versiones principal y secundaria, puede utilizar la herramienta Agregar filtro de conflictos de campo para definir el conjunto de campos que se desea excluir de los conflictos. Un filtro de conflicto de campos permite etiquetar un campo o un conjunto de campos en una clase de entidad para excluirlos de la detección de conflictos. No se devolverán conflictos durante la operación de conciliación si solo se editan los campos con filtros de conflicto. Esto solo se puede usar cuando los conflictos se definen por atributo.

Puede usar la función Python de ListFieldConflictFilters para identificar cuándo una clase de entidad o tabla tiene definidos filtros de conflicto.

Nota:

Todos los campos se muestran en la vista Conflictos; sin embargo, los campos con un filtro de conflicto aplicado no se identifican como en conflicto y no muestran un indicador rojo.

Los datos versionados en rama siempre se concilian con conflictos a favor de la versión de edición; los campos con un filtro de conflictos contienen el valor de la versión de edición.

Puede utilizar la herramienta Eliminar filtro de conflicto de campo para eliminar esos filtros de conflicto de los campos.

Nota:

Los servicios con datos versionados en rama se deben reiniciar para recoger los cambios de las herramientas Agregar filtro de conflicto de campo o Eliminar filtro de conflicto de campo.

Resolver conflictos con reglas de atributos

Reglas de atributos: mejoran la experiencia de edición y la integridad de los datos de los datasets de geodatabase. Al realizar una conciliación en la que los conflictos se definen por atributo (columna), las reglas de cálculo inmediato o restricción se evalúan para las entidades que se han actualizado tanto en la versión DEFAULT como en la versión que se está conciliando. Si se vulnera una regla de restricción durante este proceso, la fusión no se producirá, la entidad se promoverá a un conflicto de actualización-actualización y se podrá revisar en la vista Conflictos.

Resolver conflictos con clases de relación

Las clases de relación se pueden utilizar para ayudar a forzar la integridad referencial entre los objetos relacionados. Si las fuentes de datos versionadas en rama participan en una clase de relación, el proceso de conciliación evalúa estos datos para la integridad referencial. Si se vulnera la integridad referencial, se reportan las entidades que participan como conflictos y se pueden revisar en la vista Conflictos.

Si se elimina una entidad de una clase de relación de origen, aparecerá un mensaje para que elimine una entidad de la clase de relación de destino. Por lo tanto, esté atento a las ramificaciones que se producen simplemente al reemplazar conflictos que involucran clases de entidades que participan en clases de relaciones.

El siguiente es un ejemplo de un conflicto que puede surgir entre clases de relación:

  • En una versión principal, agrega una entidad de destino y la relaciona con una entidad en la clase de origen.
  • En una versión secundaria, elimina la misma entidad de origen que se utilizó para relacionar la nueva entidad de destino.
  • Cuando se concilian las ediciones, se detecta un conflicto de actualización-actualización en la clase de destino, mientras que se detecta un conflicto de eliminación-actualización en la clase de origen.

Otro ejemplo es el siguiente:

  • En el dataset de entidades de servicio eléctrico, elimina un polo que tiene relación con un transformador, lo que hace que también se elimine el transformador relacionado.
  • En otra sesión de edición que se lleva a cabo al mismo tiempo, un editor altera los atributos del transformador que usted acaba de eliminar cuando eliminó el polo relacionado.
  • Cuando se concilian las ediciones, se detecta un conflicto de actualización-eliminación en las clases de origen y destino.

En este último ejemplo, si el segundo editor elige reemplazar todos los conflictos por las representaciones de sesión de edición, se volverán a crear el polo y el transformador eliminados durante su sesión de edición.

Temas relacionados