i
Descripción de los archivos necesarios para la actualización
A continuación será descripto el archivo zip necesario para replicar el ambiente origen en el ambiente destino. El mismo contará con el pasaje necesario para replicar el proceso 9901 y también la visualización y configuración de menúes. El archivo de ejemplo puede encontrarse junto a este documento con el nombre ‘Replica_de_ambiente.zip’ y puede ser ejecutado para ver el funcionamiento del updater. Los contenidos del archivo zip se ejecutarán en el orden de su numeración (sin importar que sean archivos o carpetas) y serán los siguientes:
Carpeta ‘001.files’
Dentro de esta carpeta se encuentra el directorio ‘themes’ de la aplicación con todo su contenido. La carpeta puede ser tomada directamente desde el directorio de la aplicación o puede ser exportada con la herramienta de export WEB y extraída del archivo resultante. En caso de solo querer actualizar el tema por default, se puede tomar la carpeta ‘themes’ con la carpeta interna ‘default’ como único contenido.
Carpeta ‘002.files’
Dentro de esta carpeta se encuentra el directorio ‘html’ de la aplicación con todo su contenido. La carpeta puede ser tomada directamente desde el directorio de la aplicación o puede ser exportada con la herramienta de export WEB y extraída del archivo resultante. Esta carpeta es necesaria ya que el ambiente origen del ejemplo cuenta con una pagina de inicio que se definió en la carpeta ‘html’ en el archivo ‘SLInicio.html’.
Nota: La carpeta ‘html’ puede incluirse en el directorio ‘001.files’.
Querys ‘003.database.sql’ y carpeta ‘004.imports’
Estos dos elementos del archivo zip forman parte de la actualización de los menúes del ambiente. Ambos impactan sobre la información de las tablas que contienen la configuración de los menúes de la aplicación.
En primer lugar se ejecutará el archivo ‘003.databases.sql’. El mismo contendrá un conjunto de sentencias SQL que limpian los contenidos de las tablas con la configuración estándar de los menúes, es decir que hará un borrado completo de los datos de las mismas:
DELETE FROM T100;
DELETE FROM T103;
DELETE FROM T104;
DELETE FROM T110;
DELETE FROM T114;
Las tablas afectadas por estas sentencias son las siguientes: MENU ITEM, TOOLBAR ITEM, SOLAPA, MENU ITEM ADICIONAL, SOLAPA ADICIONAL respectivamente. Estas consultas son esenciales para aplicar la siguiente actualización. De otra forma pueden llegar a notarse diferencias entre los menúes del ambiente origen y el ambiente destino, ya que la actualización no sobrescribe datos ya existentes en las tablas destino ni tampoco borra datos que no estén presentes en las tablas origen.
Luego de las consultas que limpian las tablas el updater actualiza el ambiente con la carpeta ‘004.imports’. Dentro de esta carpeta se encuentra el export selectivo de las tablas auxiliares T100, T103, T104, T110 y T114 del ambiente origen. Como estas tablas son propias del sistema no necesitan definirse y al momento de hacer el export se seleccionan solo los datos de la tabla. Este import carga las tablas que se limpiaron previamente en el ambiente destino con los datos existentes en el ambiente origen.
Querys ‘005.database.sql’ y carpeta ‘006.imports’
Estos dos elementos del archivo zip forman parte de la actualización de los usuarios del ambiente. Ambos impactan sobre la información de las tablas de usuarios, unidades organizacionales y perfiles de la aplicación.
Primero se ejecuta el archivo ‘005.databases.sql’ el cual hace un borrado de los datos de las tablas ‘PERFIL’ y ‘PERFILFUNCION’. Como su nombre lo indica, estas tablas guardan la información que asocia los perfiles de usuario con las funciones de seguridad del sistema. Las sentencias son las siguientes:
DELETE FROM PERFIL;
DELETE FROM PERFILFUNCION;
Estas consultas son esenciales para aplicar la siguiente actualización. De otra forma pueden llegar a notarse diferencias en la visualización particular que cada usuario tiene del sistema.
Luego de la ejecución de las sentencias SQL el updater aplica la actualización de la carpeta ‘006.imports’ en el ambiente. Esta carpeta contiene el export de los usuarios del sistema en modo selectivo, habiendo seleccionado todos los usuarios y trayendo consigo las unidades organizacionales y perfiles de usuario correspondientes. Los datos de los usuarios existentes en el ambiente destino se sobrescribirán y se agregarán aquellos usuarios, perfiles y unidades organizacionales que no estén presentes.
NOTA Estos primeros 6 elementos del archivo de actualización son exclusivamente para la visualización y configuración general del ambiente. Puede realizarse la replica de otro contexto tomando las carpetas y archivos exportados de otro ambiente origen y utilizando las mismas consultas SQL, ya que no varían.
Carpeta ‘007.imports’
Esta carpeta contiene el archivo de export selectivo del proceso 9901. El mismo debe exportarse con todos sus componentes a excepción de los adaptadores.
Una vez ejecutado el updater con estos 7 elementos en el archivo de actualización, el ambiente origen queda totalmente replicado en el ambiente destino, incluyendo la visualización, configuración de menúes y la funcionalidad del proceso 9901. Sin embargo pueden existir elementos que no hayan sido parte del proceso, pero se necesiten igualmente para su correcto funcionamiento.
En este caso de ejemplo, luego de replicar el contexto se encontraron errores que correspondían a la falta de la tabla auxiliar ‘T080 - AGENTE QUE EJECUTO UNA ACTIVIDAD DETERMINADA’ y del formulario ‘UAD - Datos adicionales de usuario (USRADDDATA)’.
Este tipo de errores solo son evidentes cuando se controla el ambiente destino y son fáciles de detectar. Si bien el mayor parte de los elementos utilizados serán actualizados con el/los proceso/s, pueden existir casos como el del ejemplo en el que haya que exportar algunos pocos elementos adicionales para completar el funcionamiento del ambiente replicado.
A continuación se detallarán los últimos dos elementos del archivo zip que actualizan los componentes faltantes.
Carpeta ‘008.imports’
Dentro de esta carpeta se encuentran los exports selectivos del formulario ‘UAD’ y la tabla auxiliar ‘T080’. Al igual que en el caso del proceso y todos sus componentes asociados, la tabla y el formulario no existen en el ambiente destino por lo que se hace un export selectivo pero seleccionando todos los elementos.
Para el caso de una actualización de formulario con definición, si en el ambiente destino el formulario existe y contiene datos cargados existen dos formas de realizar correctamente la adecuación que se detallan a continuación.
Adecuación sin borrado de datos
En el caso que no sea posible descargar y/o borrar los datos del formulario para actualizar la definición, existen una serie de pasos para la modificación del formulario directamente mediante SQL. Las consultas para los distintos casos de detallan en el documento ‘Instructivo para modificar formularios con datos.doc’. En este caso será necesario identificar las diferencias entre el formulario existente en el ambiente destino y la definición del formulario que quiere importarse. Con esta información pueden armarse las sentencias SQL y las mismas pueden utilizarse para efectuar la actualización mediante el updater.
Adecuación con borrado de datos
En el caso de poder descargar y borrar los datos los pasos a seguir son:
oDescargar los datos del formulario
oHacer un borrado de los mismos
oAplicar la actualización de definición
oCargar nuevamente los datos
En este caso la utilización del updater es diferente del ejemplo visto hasta el momento.
Hasta ahora se trabajó con un archivo único de actualización que aplicaba todos los cambios necesarios. Para actualizar la definición de un formulario con datos cargados (y teniendo la posibilidad de descargar/borrar estos datos) el archivo de actualización debe dividirse en dos.
En el primer archivo de actualización debe efectuarse el borrado de los datos del formulario y en el segundo archivo la actualización de definición del formulario y opcionalmente la carga de datos en el formulario.
El updater debe ejecutarse dos veces, en el orden especificado (primero el borrado de datos y después la actualización de definición).
Esta separación en dos ejecuciones del updater es necesaria ya que de ponerse todo en un único archivo la validación detecta que se quiere efectuar una modificación de definición sobre un formulario con datos y detiene la ejecución automáticamente (aún si existe una consulta de borrado previa).
Carpeta ‘009.imports’
En esta carpeta se encuentra el export de los datos del formulario UAD. El import de tipo ‘Datos de Formulario Digital’ es el único que no puede exportarse en modo selectivo. También es la única excepción que acepta el updater ya que todos los otros tipos de import deben si o si realizarse en modo selectivo.