Operaciones

El mantenimiento actualizado de los Inventarios se obtiene considerando los Instrumentos como transacciones que los alteran mediante Operaciones. Por tanto la Operación es la pieza básica que aporta a los Instrumentos su carácter transaccional y siempre se efectúa entre un Instrumento Operador contra su Inventario, (dato contenido entre los propios del Instrumento).

Todos los elementos del Inventario son susceptibles de ser creados, alterados o suprimidos mediante Operaciones específicas, por tanto se clasifican en función del elemento al que afectan: de Instrumentos, de Atributos, de Entidades, de Relaciones y de Asignaciones.

Tipos de Operaciones

Operaciones entre Versiones

Permiten realizar operaciones masivas con una sola operación.

INSERT

Añade al Inventario operado todos los elementos contenidos en el Instrumento operado. La inserción efectúa una copia de los elementos del Instrumento operador en la versión del Inventario operado,  manteniendo su UUID, de forma que desde ese momento hay dos instancias de cada elemento, una vinculada al Instrumento operador y otra vinculada al Inventario.

Los Atributos, Entidades o Relaciones  insertados quedarán como hijos de un elemento padre, dentro del nivel raíz de cada tipo de elemento, con carácter de Enunciado en el caso de Atributos y del grupo Carpeta en el caso de Entidades y Relaciones con el nombre de “Insertados por: “ + [nombre y versión del Instrumento operador].

UPDATE

Añade el contenido de los Atributos, Entidades y Relaciones existentes en el Instrumento Operador que tengan idéntico UUID en el Instrumento operado. Los elementos del Instrumento operador deberán tener el mismo Carácter Funcional en el caso de los Atributos y Grupo en el caso de las Entidades y Relaciones que sus correspondientes en el Instrumento operado.

REPLACE

Sustituye el contenido de los Atributos, Entidades y Relaciones existentes en el Instrumento Operador que tengan idéntico UUID en el Instrumento operado. Los elementos del Instrumento operador deberán tener el mismo Carácter Funcional en el caso de los Atributos y Grupo en el caso de las Entidades y Relaciones que sus correspondientes en el Instrumento operado.

DELETE (ALL, PARTIAL)

En el caso ALL elimina todos los elementos del Inventario operado.

En el caso PARTIAL elimina los Atributos, Entidades y Relaciones existentes en el Instrumento Operador que tengan idéntico UUID en el Instrumento operado. Es una operación CASCADE por tanto elimina los elementos hijos del elemento a eliminar aunque no se hayan señalado en la operación.

Operaciones entre Atributos

INSERT (SIMPLE, CASCADE)

Añade un nuevo Atributo al Inventario. La inserción efectúa una copia del Atributo del Instrumento operador en la versión del Inventario operado,  manteniendo el UUID del Atributo, de forma que desde ese momento hay dos instancias de un mismo Atributo, una vinculada al Instrumento operador y otra vinculada al Inventario. El Atributo operador debe tener el Carácter Funcional de Atributo que definirá su función en el Inventario destino.

Contenido adicional:

Atributo Operador: identificador del Atributo a añadir en el Inventario operado.

Atributo Operado: en esta operación identifica al Atributo que actuará como Atributo Padre en el árbol de Atributos del Inventario operado. Si no se indica se crea un Atributo de carácter Enunciado al final del árbol de Atributos del Inventario operado con el nombre de “Aportados por…” + [nombre del Instrumento operador], este Enunciado se asigna como Atributo “padre” al Atributo aportado y se recalcula el orden correspondiente a su nueva ubicación para que quede como el último Atributo “hijo”.

Posición: posición en la que debe quedar el nuevo Atributo entre sus Atributos “hermanos”. Supone una renumeración de los ya existentes. Si no se indica pasará a ser el último.

Alcance: tiene dos opciones:

Simple – cuando la operación afecta únicamente al Atributo aportado.

Cascada – cuando también afecta a todos los Atributos hijos del Atributo operador.

Restricciones: si los Atributos aportados apuntan a Atributos con carácter funcional de “Unidad”, “Referencia” , “Régimen” que no existan previamente en el Inventario y no se hayan aportado explícitamente, éstos también se aportarán como Atributos “hijos” del aportado, de forma que el Inventario mantenga la integridad referencial entre sus Atributos. El Atributo Operador debe contener los datos mínimos, en caso contrario será rechazada la transacción.

UPDATE

Añade el contenido del Atributo operador al contenido del Atributo operado en los campos de Nombre, Descripción y Dominios, y sustituye el contenido en los demás campos. El Atributo operador deberá tener Carácter Funcional de “Operation”.

Contenido adicional:

Atributo Operador: identificador del Atributo en el Instrumento operador.

Atributo Operado: identificador del Atributo en el Inventario operado.

Restricciones: la operación nunca afecta al Carácter Funcional del Atributo operado.

REPLACE

Sustituye todo el contenido de un Atributo existente en el Inventario por el contenido del Atributo operador. El Atributo operador deberá tener Carácter Funcional de “Operation”.

Contenido adicional:

Atributo Operador: identificador del Atributo en el Instrumento operador.

Atributo Operado: identificador del Atributo en el Inventario operado.

Restricciones: la Sustitución nunca puede afectar al Carácter Funcional del Atributo.

DELETE

Elimina el Atributo afectado por la operación. La operación no necesita que esté indicado el Atributo Operador, por tanto son operaciones vinculadas directamente a la Versión operadora.

Contenido adicional:

Atributo Operado: identificador del Atributo en el Inventario operado.

Restricciones, si el Atributo a eliminar tiene Atributos hijos en el Inventario operado la transacción se rechaza ya que el sistema no puede establecer en qué posición deberían quedar los Atributos “huérfanos”. Para ello se deben eliminar previamente los Atributos hijos verificando el orden correcto de las operaciones.

Operaciones entre Entidades

INSERT (SIMPLE, CASCADE)

Añade un nueva Entidad al Inventario. La inserción efectúa una copia de la Entidad del Instrumento operador en la versión del Inventario operado,  manteniendo el UUID de la Entidad, de forma que desde ese momento hay dos instancias de una misma Entidad, una vinculada al Instrumento operador y otra vinculada al Inventario. La Entidad operadora debe pertenecer al Grupo de Entidad que definirá su función en el Inventario destino.

Si es de tipo SIMPLE la operación afecta únicamente a la Entidad aportada .

Si es de tipo CASCADE la operación también afecta a todas sus Entidades hijas en el Instrumento operador.

Contenido adicional:

Entidad Operadora: identificador de la Entidad a añadir en el Inventario operado.

Entidad Operada: en esta operación identifica la Entidad que actuará como Entidad Padre en el árbol de Entidades del Inventario operado. Si no se indica se crea una Entidad de “Carpeta” al final del árbol de Entidades del Inventario operado con el nombre de “Insertadas por: + [nombre y versión del Instrumento operador], este Grupo se asigna como Entidad “padre” a la Entidad aportada y se recalcula el orden correspondiente a su nueva ubicación para que quede como la última Entidad “hija”.

Posición: posición en la que debe quedar la nueva Entidad entre sus Entidades “hermanas”. Supone una renumeración de las ya existentes. Si no se indica pasará a ser la última.

Restricciones: antes de realizar la operación es preciso verificar que todos los Atributos aplicados a la Entidad ya existen en el Inventario de destino mediante su UUID. Si no existen en el diccionario de Atributos del Inventario operado, la transacción se rechazará. Ello exige que si los Atributos están definidos por el mismo Instrumento deben haber sido aportados al Inventario en operaciones previas, lo que determina que siempre se verificarán primero las operaciones de Atributos, después las de Entidades y finalmente las de Relaciones en el orden que esté establecido dentro de cada sección. La Entidad Operadora debe contener los datos mínimos, en caso contrario será rechazada la transacción.

UPDATE (ADD, SUBTRACT)

Sustituye el contenido de la Entidad operada por el contenido de la Entidad operadora. La Entidad operadora deberá pertenecer al grupo “Operator”.

Si es de tipo ADD aplicará en la Entidad operada los Atributos aplicados en la Entidad operadora que no estén ya aplicados en ella con sus valores y creará nuevos valores para los Atributos de la Entidad operadora que ya estén aplicados previamente en la Entidad operada, añadiéndolos a los ya existentes. Añadirá a la geometría de la Entidad operada la geometría de la Entidad operadora.

Si es de tipo SUBTRACT eliminará de la Entidad operada los Atributos aplicados en la Entidad Operadora y sus valores. Sustraerá de la geometría de la Entidad operada la geometría de la Entidad operadora.

Contenido adicional:

Entidad Operadora: identificador de la Entidad en el Instrumento operador.

Entidad Operada: identificador de la Entidad en el Inventario operado.

Restricciones: la Operación nunca puede afectar al Grupo de Entidad.

REPLACE (ALL, PARTIAL)

Si es de tipo ALL sustituye todo el contenido de una Entidad existente en el Inventario por el contenido de la Entidad operadora, incluida su geometría. La Entidad operadora deberá pertenecer al grupo “Operator”.

Si es de tipo PARTIAL sustituye el contenido de la Entidad Operada que que esté contenido en la Entidad Operadora.

Contenido adicional:

Entidad Operadora: identificador de la Entidad en el Instrumento operador.

Entidad Operada: identificador de la Entidad en el Inventario operado.

Restricciones: la Operación nunca puede afectar al Grupo de Entidad.

DELETE

Elimina la Entidad afectada por la operación. La operación no necesita que esté indicada la Entidad operadora, por tanto son operaciones vinculadas directamente a la Versión operadora.

Contenido adicional:

Entidad Operada: identificador de la Entidad a eliminar en el Inventario.

Restricciones: si la Entidad tiene Entidades hijas en el Inventario operado la transacción se rechaza ya que el sistema no puede establecer en qué posición deberían quedar las Entidades “huérfanas”. Para ello se deben eliminar previamente las Entidades hijas verificando el orden correcto de las operaciones.

Operaciones entre Relaciones

INSERT (SIMPLE, CASCADE)

Añade una nueva Relación al Inventario. La aportación efectúa una copia de la Relación que pasa a ser propiedad del Inventario operado.

Añade un nueva Relación al Inventario. La inserción efectúa una copia de la Relación del Instrumento operador en la versión del Inventario operado,  manteniendo el UUID de la Relación, de forma que desde ese momento hay dos instancias de una misma Relación, una vinculada al Instrumento operador y otra vinculada al Inventario. La Relación operadora debe pertenecer al Grupo de Relación que definirá su función en el Inventario destino.

Si es de tipo SIMPLE  la operación afecta únicamente a la Relación aportada .

Si es de tipo CASCADE la operación afecta a todas sus Relaciones hijas en el Instrumento operador.

Contenido adicional:

Relación Operadora: identificador de la Relación a añadir al Inventario operado.

Relación Operada: en esta operación identifica la Relación que actuará como Relación Padre en el árbol de Relaciones del Inventario operado. Si no se indica se crea una Relación de “Carpeta” al final del árbol de Relaciones del Inventario operado con el nombre de “Aportadas por…” + [nombre del Instrumento operador], este Grupo se asigna como Relación “padre” a la Relación aportada y se recalcula el orden correspondiente a su nueva ubicación para que quede como la última Relación “hija”.

Posición: posición en la que debe quedar la nueva Relación entre sus Relaciones “hermanas”. Supone una renumeración de las ya existentes. Si no se indica pasará a ser la última.

Restricciones: antes de realizar la operación es preciso verificar que todos los Atributos aplicados a la Relación ya existen en el Inventario de destino mediante su UUID. Si no existen en el diccionario de Atributos del Inventario operado, la transacción se rechazará. Ello exige que si los Atributos están definidos por el mismo Instrumento deben haber sido aportados al Inventario en operaciones previas, lo que determina que siempre se verificarán primero las operaciones de Atributos, después las de Entidades y finalmente las de Relaciones en el orden que esté establecido dentro de cada sección. La Relación Operadora debe contener los datos mínimos, en caso contrario será rechazada la transacción.

UPDATE (ADD, SUBTRACT)

Sustituye el contenido de la Relación operada por el contenido de la Relación operadora. La Relación operadora deberá pertenecer al grupo “Operator”.

La operación no afectará a los elementos objeto de la relación.

Si es del tipo ADD aplicará en la Relación operada los Atributos Aplicados en la Relación operadora que no estén ya aplicados en ella con sus valores y creará nuevos valores para los Atributos de la Relación operadora que ya estén Aplicados previamente en la Relación operada, añadiéndolos a los ya existentes. Añadirá a la geometría de la Relación operada la geometría de la Relación operadora.

Si es del tipo SUBTRACT eliminará de la Relación operada los Atributos Aplicados en la Relación Operadora y sus valores. Sustraerá de la geometría de la Relación operada la geometría de la Relación operadora.

Contenido adicional:

Relación Operadora: identificador de la Relación en el Instrumento operador.

Relación Operada: identificador de la Relación en el Inventario operado.

REPLACE

Sustituye todo el contenido de una Relación existente en el Inventario por el contenido de la Relación operadora, incluida su geometría. La Relación operadora deberá pertenecer al grupo “Operator”.

Contenido adicional:

Relación Operadora: identificador de la Relación en el Instrumento operador.

Relación Operada: identificador de la Relación en el Inventario operado.

Restricciones: la Operación nunca puede afectar al Grupo de Relación ni al os elementos afectados por la Relación.

DELETE

Elimina la Relación afectada por la operación. La operación no necesita que esté indicada la Relación operadora, por tanto son operaciones vinculadas directamente a la Versión operadora.

Contenido adicional:

Relación Operada: identificador de la Relación a eliminar en el Inventario.

Restricciones: si la Relación tiene Relaciones hijas en el Inventario operado la transacción se rechaza ya que el sistema no puede establecer en qué posición deberían quedar las Relaciones “huérfanas”. Para ello se deben eliminar previamente las Relaciones hijas verificando el orden correcto de las operaciones.

Operaciones entre Asignaciones

INSERT SIMPLE

Añade una nueva Asignación a la Entidad o Relación afectada. La inserción efectúa una copia de la  Asignación del Instrumento operador en la versión del Inventario operado,  manteniendo el UUID de la Asignación, de forma que desde ese momento hay dos instancias de una misma Asignación, una vinculada al intrumento operador y otra vinculada al Inventario.

La Asignación a insertar utiliza una Entidad  o una Relación portadora en el Instrumento operador, Entidad o Relación que deberá ser del grupo Operador y que se desecha una vez ejecutada la Operación.

Contenido adicional:

Asignación Operadora: identificador de Asignación a añadir en la Entidad o Relación del Inventario operado con todos sus Valores incluidos.

Grupo de Asignación: cuando esta indicado la Asignación crea un Grupo propio de Asignación si no existe previamente en la Entidad operada, si ya existe integra en ese Grupo la nueva Asignación.

Entidad / Relación Operada: identifica la Entidad o Relación destino del Atributo Aplicado.

Restricciones: antes de realizar la operación es preciso verificar que todos los Atributos implicados en las Asignaciones tienen en su Dominio de Asignación el grupo de la Entidad o Relación de destino. La Asignación debe contener los datos mínimos, en caso contrario será rechazada la transacción.

UPDATE (ADD, SUBSTRACT)

Añade o sustituye los Valores de la Asignación de origen a la Asignación de destino

Si es de tipo ADD añadirá a la Asignación Operada los Valores contenidos en la Asignación operadora.

Si es de tipo SUBSTRACT eliminará de la Entidad operada las Asignaciones con idéntico UUID a los existentes en la Entidad Operadora.

Contenido adicional:

Asignación Operadora: identificador de la Asignación en el Instrumento operador.

Asignación Operada: identificador de la Asignación en el Inventario operado.

Grupo de Asignación: cuando esta anotado la Asignación crea un Grupo propio de Asignación si no existe previamente en la Entidad operada. Si la Asignación Operada ya era miembro de otro Grupo la mueve al Grupo de Asignación. Si no se indica la Asignación Operada se mantiene en su Grupo si lo tuviera.

Restricciones: la Operación sólo se puede efectuar entre Asignaciones cuyos Atributos tengan el mismo Modo de Expresión.

REPLACE (ALL, PARTIAL)

Si es de tipo ALL sustituye todos las Asignaciones con la Asignación Operadora. Su efecto es idéntixo al REPLACE ALL entre Entidades.

Si es de tipo PARTIAL sustituye sólo la Asignación Operada por la Operadora

Contenido adicional:

Asignación Operadora: identificador de la Asignación en el Instrumento operador.

Asignación Operada: identificador de la Asignación en el Inventario operado.

Grupo de Asignación: cuando esta anotado la Asignación crea un Grupo propio de Asignación si no existe previamente en la Entidad operada. Si la Asignación Operada ya era miembro de otro Grupo la mueve al Grupo de Asignación. Si no se indica la Asignación Operada se mantiene en su Grupo si lo tuviera.

Restricciones: la Operación sólo se puede efectuar entre Asignaciones cuyos Atributos tengan el mismo Modo de Expresión.

DELETE

Elimina de la Entidad la Asignación con Idéntico UUID que la Asignación operadora.

Contenido adicional:

Asignación Operadora: identificador de la Asignación en el Instrumento operador.

Asignación Operada: identificador de la Asignación en el Inventario operado.

Ejecución

Las Operaciones son ejecutadas por el motor transaccional de urbiGIS en dos entornos:

Entorno de pruebas. En este entorno el operador puede seleccionar una o varias operaciones y ejecutarlas en un entorno que permite visualizar sus resultados sin afectar al Inventario ni al historial de los elementos involucrados. La orden de ejecución produce un informe de resultados que indica las operaciones efectuadas con éxito o los problemas y restricciones que han impedido su ejecución. Como se indicó previamente el orden de precedencia en que se ejecutarán las operaciones determina el éxito del resultado final cuando el Instrumento operador define varias, dado que en ocasiones los resultados pueden no ser coherentes si no se ejecutan en un orden determinado. Por tanto el entorno de Pruebas es muy importante en dos momentos,a) en tiempo de edición,  de forma que el redactor del instrumento pueda visualizar en línea el resultado de sus propuestas sobre el Inventario y b) en tiempo de tramitación, de forma que el técnico encargado de su revisión pueda verificar que el resultado se ajusta a los requisitos técnicos y jurídicos que comporte.

Entorno real. En este entorno el operador de urbiGIS efectúa las operaciones contra el Inventario operado en modo real. De forma que cuando aprueba el resultado las modificaciones serán inmediatamente visibles en la publicación por Internet de urbiGIS. La ejecución de las operaciones en este entorno real se puede retrotraer en todo momento siempre y cuando se efectúe una vuelta atrás ordenada y completa que asegure el mantenimiento de la consistencia de los datos del Inventario. Estas operaciones de vuelta atrás pueden quedar consignadas en el historial de cada elemento. La permanencia en urbiGIS de todos los Instrumentos y sus operaciones asegura que en todo momento es posible la reconstrucción de los Inventarios partiendo desde su posición inicial.

Las Operaciones siempre se ejecutan en el entorno competencial de cada Ámbito por tanto no hay posibilidad de que operaciones ejecutadas en un Ambito afecten a Inventarios de otros Ámbitos.