Utilidades

Cosmos Data

Cosmos Data es una utilidad Cosmos que permite la consulta y exportación de datos de una base de datos MultiBase/CTSQL de una manera sencilla e in-tuitiva, pudiendo así mismo almacenar las consultas para acceder a ellas posteriormente.

Arquitectura

Cosmos Data permite extraer fácilmente información de una base de datos seleccionando gráficamente las tablas y columnas a mostrar y definiendo las condiciones de selección.

Cosmos Data es una herramienta gráfica que muestra la estructura de tablas y columnas de una base de datos definida en el repositorio CRF del proyecto Cosmos. Las tablas se muestran siguiendo una estructura en árbol de acuerdo con los JOINs definidos en el repositorio.

El usuario final comienza seleccionando columnas de una tabla y, a partir de ésta, se puede enlazar con cualquiera de las tablas relacionadas.

Configuración

Cosmos Data utiliza dos ficheros de configuración: cosmosdata.ini y configuration.ini.

Fichero cosmosdata.ini

El fichero cosmosdata.ini es el fichero de configuración de proyecto de Cosmos usado por Cosmos Data. En él se almacenan los datos de conexión a la base de datos, los parámetros de entorno como la variable DBTEMP, etc.

Fichero configuration.ini

El fichero configuration.ini permite personalizar la información que se muestra al usuario final de Cosmos Data.

Aquí se definen el repositorio CRF que se desea utilizar, el nombre de la conexión y de la base de datos que contiene los datos a mostrar, el directorio por defecto donde se almacenarán los ficheros de consulta, etc.

El nombre "configuration.ini" es el valor por defecto para este fichero, pero Cosmos Data permite el uso de un fichero de configuración distinto y pasarlo como parámetro de ejecución de la aplicación “-config <fichero_de_configuracion.ini>.

El fichero configuration.ini está dividido en las siguientes secciones:

Sección [General]

En esta sección se definirán las variables que indican el nombre de la conexión y de la base de datos que se desea utilizar, el nombre del repositorio y otros parámetros de funcionamiento interno de la aplicación.

CONNECTION. En esta variable se indica el nombre de la conexión de la base de datos que se empleará cuando se ejecute el proceso de consulta de datos. El nombre de la conexión debe co-incidir con una conexión a una base de datos definida en el fichero cosmosdata.ini

DATABASE. Indica el nombre de la base de datos a la que se desea acceder cuando se ejecute el proceso de consulta de datos.

REPOSITORY. Indica el nombre del fichero CRF de repositorio de tablas que se usará en la aplicación Cosmos Data.

REPORTSPATH. Variable de uso opcional que indicará el directorio por defecto donde se alma-cenarán los ficheros de report. Estos ficheros son ficheros ASCII con extensión SRW donde se de-fine el nombre del report, el nombre de la tabla maestra, la lista de columnas y joins, columnas de agrupación, ordenación, cálculo de agregados y condiciones del report.

BACKUPREPORT. Variable de uso opcional cuyo valor es un booleano (TRUE/FALSE, YES/NO) que indica si se realizará una copia automática del fichero de report cada vez que se pulse el botón [Guardar].

DEBUGMODE. Variable de uso opcional cuyo valor es un booleano (TRUE/FALSE, YES/NO) que indica si se mostrará toda la información de columnas, joins, etc., de las tablas del report en los controles de tipo lista de la aplicación.

Sección [Export]

En esta sección se definirán los módulos del proyecto que se podrán añadir de forma externa para que realicen las tareas de tratamiento de datos. Ver “Exportación externa” más adelante.

Sección [Include Tables]

En esta sección se especificará la lista de tablas del repositorio que serán visibles desde el entorno visual de la aplicación. En el caso de que no se indiquen tablas incluidas, se mostrarán todas las tablas. Se deberá indicar una tabla por línea.

Sección [Exclude Tables]

En esta sección se indicará la lista de tablas del repositorio que no serán visibles desde el entorno visual de la aplicación. En el caso de que no se indiquen tablas excluidas, se mostrarán todas las tablas. Se deberá indicar una tabla por línea.

Si se indican valores tanto en “Include Tables” como “Exclude Tables” el comportamiento es el siguiente: Se mostrarán solo las tablas definidas en “Include Tables” que no lo estén en “Exclude Tables”.

Sección [Include Columns]

En esta sección se indicará la lista de columnas (tabla.columna) que serán visibles desde el entorno visual de la aplicación. En el caso de que no se indiquen columnas, se mostrarán todas las columnas de las tablas visibles. Se deberá indicar una columna por línea.

Sección [Exclude Columns]

En esta sección se indicará la lista de columnas (tabla.columna) que no serán visibles desde el entorno visual de la aplicación. En el caso de que no se indiquen columnas, se mostrarán todas las columnas de las tablas visibles. Se deberá indicar una columna por línea.

Si se indican valores tanto en “Include Columns” como “Exclude Columns” el comportamiento es el siguiente: Se mostrarán solo las columnas definidas en “Include Columns” que no lo estén en “Exclude Columns”.

Sección [Rename Tables Labels]

En esta sección se indicará la lista de las tablas del repositorio que se desea que se muestren con una descripción distinta a la que aparece en el repositorio.

También será posible modificar la etiqueta de una tabla desde el entorno de la aplicación, pulsando el botón derecho del ratón sobre el nombre de la tabla y eligiendo la opción “Editar Nombre de Tabla”.

Sección [Rename Columns Labels]

En esta sección se indicará la lista de columnas del repositorio que se desea que se muestren con una descripción distinta a la que aparece en el repositorio.

También será posible modificar la etiqueta de una columna desde el entorno de la aplicación pulsan-do el botón derecho del ratón sobre el nombre de la columna y eligiendo la opción “Editar Columna”.

Sección [Expressions]

En esta sección se deberán incluir las columnas no existentes en las tablas del repositorio y que son el resultado de expresiones o fórmulas entre las columnas de la tabla.

También será posible añadir una columna expresión desde el entorno de la aplicación, pulsando el botón derecho del ratón sobre la tabla y eligiendo la opción “Añadir Expresión”.

Ejecución de Cosmos Data

Cosmos Data es una aplicación Cosmos, por lo que necesita un runtime de Cosmos para su funcio-namiento.

Parámetros en la línea de comando de Cosmos Data:

Desde otra aplicación Cosmos

El comando RunCmdExt es un comando interno de Cosmos de la clase Form que permite invocar, desde un formulario con un FormTable, un comando indicado en la variable RUNCMDEXT.

Esta invocación se puede realizar mediante una combinación de teclas definida en el proyecto de Cosmos.

Así, por ejemplo, permite invocar a la aplicación Cosmos Data pasándole como parámetro el nombre de la tabla del FormTable ($MASTERTABLE), sin tener que modificar todos los formularios de la apli-cación, sino únicamente definiendo el acelerador y la línea de comando.

Creación de un report

Los pasos para la creación de un report se pueden resumir en:

  1. Desde la pestaña “Selección”, selección de tabla maestra y selección de columnas de la tabla maestra y de sus dependencias.
  2. Desde la pestaña “Condiciones”, definición de condiciones que se tendrán en cuenta cuando se ejecute el listado.
  3. Desde la pestaña “Grupos”, selección de columnas por las que se desea agrupar.
  4. Desde la pestaña “Ordenación”, selección de columnas por las que se desea ordenar.
  5. Desde la pestaña “Agregados”, selección de columnas por las que se desea realizar un cálculo sobre el conjunto de valores del grupo.
  6. Guardar la consulta desde el botón [Guardar] o desde la opción de menú “Guardar” del menú “Archivo”.

La pantalla principal de Cosmos Data está compuesta de cinco pestañas: “Selección”, “Condiciones”, “Grupos”, “Ordenación” y “Agregados”, y de una lista que muestra el sumario del listado: Tabla ma-estra, columnas seleccionadas, condiciones, grupos, ordenación y agregados.

Ejecución de un report desde Cosmos Data

El resultado de la ejecución de un report se puede mostrar en pantalla o bien volcar a un fichero de texto en formato UNL, CSV o Excel.

Si el report no ha sido guardado o se han realizado cambios que no han sido archivados, antes de la ejecución se deberá proceder a su guardado desde la opción “Guardar” del menú “Archivo” o desde el botón [Guardar]. Si se desea cambiar el nombre del archivo de report, se deberá ejecutar la opción “Guardar Como” del menú “Archivo”.

Para que la ejecución del report sea correcta, se deberá haber definido en Cosmos Data el nombre de la conexión y el nombre de la base de datos a la que se deberá conectar para extraer los datos. Ver las variables CONNECTION y DATABASE en la “Sección General” del fichero de configuración “configuration.ini” comentado anteriormente en este mismo documento

La estructura y el nombre de las tablas y el nombre y tipo de columnas del repositorio CRF usado en el report deberá coincidir con los de la base de datos desde donde se desea extraer los datos.

Salida a pantalla

Para ejecutar y mostrar en pantalla el resultado de la ejecución de un report creado en Cosmos Data se deberá seleccionar la opción “Ejecutar” del menú “Archivo” o hacer clic en el botón [Ejecutar].

El resultado del report aparecerá en una pantalla aparte, en formato de lista.

Si se han seleccionado columnas de agrupación, la lista aparecerá en formato árbol. Es posible cambiar las columnas de agrupación en la ventana de resultado pulsando el botón [Grupo], y arrastrando las columnas desde la cabecera de la lista a la barra de agrupación. Desde esa barra de agrupación también es posible indicar columnas de agregados. Al pulsar el botón [Aceptar] se recalculará el listado y se mostrará en la lista de pantalla.

Salida a fichero

Cosmos Data permite almacenar la salida de la ejecución de un report en un fichero de texto en formato UNL, CSV o Excel.

La salida en formato UNL creará un fichero de texto en el que escribirá una línea por registro, y cada campo irá delimitado por un carácter pipe “|”.

La salida en formato CSV creará un fichero de texto en el que se escribirá una línea por registro, y cada campo irá delimitado por un carácter punto y coma “;”.

La salida en formato Excel  creará un fichero XML de Excel.

Para seleccionar la salida a fichero, deberá ejecutar la opción “Exportar A…” del menú “Archivo” y a continuación elegir la opción deseada (UNL, CSV o Excel). Aparecerá una ventana de selección donde se indicará el directorio y el nombre del fichero de salida.

Exportación externa

Cosmos Data permite la ejecución de módulos Cosmos creados por el programador con el fin de personalizar la salida de datos de un report SRW.

Estos módulos deberán ser programados en Cosmos, añadidos a “cosmosdata.prj” y asociados a la exportación externa desde el fichero “configuration.ini” en la sección [Export].

Los módulos de exportación externa deberán implementar un método Main que recibirá como parámetro la ruta del fichero de salida en la ejecución de un report SRW, y la descripción y el tipo SQL de las columnas del mismo. De esta manera, estos módulos externos programados en Cosmos podrán tratar la información generada desde Cosmos Data y mostrar gráficos, exportar datos a otros formatos, etc.

Ficheros de report SRW

Los ficheros de descripción de report generados por Cosmos Data se almacenan en formato texto y con extensión SRW. Para utilizar un report existente se deberá abrir desde la opción “Abrir” del menú “Archivo”.

Cosmos Data gestiona los ficheros de descripción de report desde el entorno de la aplicación. Se recomienda no editar manualmente estos ficheros (consulte el documento PDF para más información).