Al realizar ediciones en una versión, las versiones empiezan a diferenciarse unas de otras. Después de crear una versión nominal, todas las ediciones se rastrean en la versión predeterminada y en la versión nominal. Las ediciones en la versión predeterminada pueden incluir ediciones publicadas por otras versiones nominales.
Una vez haya terminado de editar una versión con nombre, puede realizar los procesos de conciliación y publicación para fusionar sus ediciones. El proceso de recuperación de cualquier cambio de la versión predeterminada y su fusión con su versión se denomina conciliación. A continuación, puede enviar los cambios que haya realizado en la versión predeterminada usando el proceso de publicación. Con el versionado en rama, siempre se concilia y publica usando la versión predeterminada como la versión de destino.
Los conflictos se descubren cuando la versión con nombre se concilia con la versión predeterminada. Cuando se descubren conflictos durante la operación de conciliación, se resuelven inicialmente a favor de la versión de edición. Recibirá un mensaje que le pregunta si desea revisar los conflictos utilizando la vista Conflictos. Aquí, puede revisar los conflictos de uno en uno y, en caso necesario, realizar cambios. Por ejemplo, puede utilizar la vista Conflictos para reemplazar por la versión de destino o utilizar las herramientas de edición para modificar la entidad en conflicto de otra manera.
El proceso de conciliación solo actualiza la versión de edición para que ArcGIS Pro pueda verificar los conflictos; no fusiona los cambios con la versión de destino. Una vez que termine de conciliar y revisar los conflictos, debe completar el proceso de fusión publicando los cambios en la versión de destino.
Nota:
Este tema describe los procesos de conciliación y publicación mediante la pestaña Versionado. También puede conciliar y publicar las versiones utilizando la herramienta de geoprocesamiento Conciliar versiones o el botón Conciliar/Publicar de la pestaña Versiones cuando se encuentre en la vista Versiones.Proceso de conciliación
Cuando trabaja en una versión en rama, la conciliación con la versión predeterminada detecta conflictos entre ella y la versión con nombre a la que está conectado actualmente. Se devuelve una advertencia si intenta conciliar y hay conflictos que no están marcados como revisados. Con el versionado en rama, solo puede conciliar con la versión predeterminada. No puede conciliar con otra versión con nombre.
Más información sobre el acceso a versiones
Al acceder a fuentes de datos versionados en rama como capas de entidades web, puede utilizar las herramientas Conciliar y Publicar. Para iniciar el proceso de conciliación, haga clic en el botón Conciliar de la pestaña Versionado. Aparece el cuadro de diálogo Conciliar. La conciliación de versiones para datasets versionados en rama utiliza las siguientes condiciones:
- Los conflictos pueden definirse por objeto o por atributo.
- Los conflictos siempre se resuelven a favor de la versión de edición.
No se pueden utilizar las operaciones Deshacer ni Descartar para revertir los cambios realizados tras finalizar una operación de conciliación de datos versionados en rama.
Si existen conflictos, puede revisarlos en la vista Conflictos.
Revisar conflictos en la vista Conflictos
Si se detectan conflictos durante el proceso de conciliación, puede revisarlos en la vista Conflictos . Es posible acoplar la vista 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. La vista Conflictos contiene todas las clases de conflicto y las entidades o filas en conflicto. Las clases de conflicto representan las capas de entidades web en conflicto con todo el servicio.
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.
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.
Si se produce un conflicto en una versión en rama, ArcGIS Pro la resuelve en favor de la versión de edición.
En el versionado en rama, los conflictos se almacenan de forma persistente en una tabla propiedad del sistema llamada GDB_CONFLICTS. De esta manera, puede administrar conflictos de varias sesiones de edición, revisar y resolver conflictos y salir y volver más tarde para continuar. Una segunda operación de conciliación limpiará la tabla de conflictos y la volverá a rellenar con nuevos conflictos que hayan ocurrido desde la última conciliación. Significa que es posible que pierda su historial de resoluciones de conflictos si se realiza una segunda conciliación.
Determinar los campos o filas en conflicto
Todas las entidades y clases de conflicto aparecen en el cuadro de lista 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 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, 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.
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.
- 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 de destino.
- 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.
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.
Si hay otros campos de atributo en conflicto, aparecerá un indicador rojo en la parte izquierda de la fila. Si se ha eliminado una entidad en alguna versión, aparecerá <Deleted> para el valor de atributo de esa versión.
Los dos botones de la parte inferior del cuadro de diálogo le permiten cambiar entre la visualización de todos los campos o la visualización solo de los campos que están en conflicto.
Marcar como revisado o no revisado
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 lista Diferencias, haga clic con el botón derecho en la versión, dataset, entidad o atributo y seleccione una de las siguientes opciones de sustitución:
- Reemplazar con la versión actual
- Reemplazar con la versión de destino
- Reemplazar con la versión antecesora común
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 Diferencias, todas se reemplazarán por 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 Diferencias 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 Diferencias 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.
Puede usar la herramienta Agregar filtro de conflicto 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. Esto solo se puede usar cuando los conflictos se definen por atributo.
Nota:
Después de aplicar un filtro de conflicto de campo a un campo o conjunto de campos, cuando concilie, los conflictos no se identifican si solo se editaron los campos en los que se establece el filtro. Si se editaron otros campos no filtrados y existen conflictos en la versión de destino para dichos campos, cuando concilie, todos los campos (filtrados y no filtrados) en conflicto se identifican en la vista Conflicto.
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.
Puede usar la función Python de ListFieldConflictFilters para identificar cuándo una clase de entidad o tabla tiene definidos filtros de conflicto.
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 predeterminada 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:
- Actualiza el campo Primario de la clase de origen y rompe la relación en la versión A.
- Al mismo tiempo, actualiza la entidad de destino relacionada a la clase en la versión B.
- Dado que la clase de destino es dependiente de la clase de origen, se detecta un conflicto cuando concilia las versiones.
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 detectará un conflicto de actualización-eliminación.
Publicar cambios
Para publicar cambios en la versión predeterminada una vez que hayan conciliado y revisado conflictos, haga clic en Publicar en el grupo Versionado en la pestaña Versionado.
Durante el proceso de publicación, se pueden detectar conflictos. Esto puede ocurrir cuando se realizan ediciones en la versión predeterminada después de la conciliación y antes del proceso de publicación. Estas ediciones pueden proceder de ediciones directas en la versión predeterminada o de ediciones publicadas desde otras versiones con nombre. Si esto ocurre, se devuelve un error y debe volver a realizar la operación de conciliación antes de publicar.
Una vez publicados los cambios, no se pueden deshacer, dado que está aplicando cambios en una versión de destino.
Si existen conflictos que no se han marcado explícitamente como revisados, aparece un cuadro de diálogo al publicar, con una advertencia de que los conflictos no revisados se resolverán automáticamente. Haga clic en Sí para resolver automáticamente conflictos con las opciones que elija en el cuadro de diálogo Conciliar y publique los cambios en la versión de destino.
Tras la publicación, puede seguir realizando ediciones en su versión. Para aplicar estos cambios a la versión de destino, debe realizar de nuevo los procesos de conciliación, resolución de conflictos y publicación.
Si la publicación marca el fin de su flujo de trabajo, también puede eliminar la versión que ha estado editando.