Hay alguien tan inteligente que aprende de la experiencia de los demás.

 Voltaire 

 

Cómo automatizar Procesos con Excel hacia una Base de Datos y Sistema Web
José Enrique González Cornejo
18 de marzo 2010

Con planificación es posible montar un Administrador Web, que cargue las planillas Excel hacia una base de datos remota en un servidor Internet. Esta base de datos remota, puede ser diseñada en forma universal y paramétrica, de donde se podrá obtener todo tipo de informes.

Postulamos que el precio de automatizar con Excel es directamente proporcional al crecimiento del numero de planillas que va acumulando el sistema, y por tanto es divergente en el tiempo. Contrariamente, automatizar sobre una base de datos, tiene un correlación negativa sobre el precio y converge hacia un valor constante.

 

Uso de Múltiples Planillas Excel

Según la experiencia de DocIRS, podemos afirmar que frecuentemente en las organizaciones se inician procesos de captura de datos utilizando planillas Excel, las cuales se van almacenando según el nombre del archivo. El nombre de estos archivos y eventualmente las carpetas, contienen el tema, la fecha o una cierta correlatividad, de modo que se ha ido configurando un sistema de datos, basado en múltiples planillas, pero que no constituyen una base de datos.

Excel una Solución Inicial

Inicialmente, los sistemas de planillas resultan en una solución muy conveniente, dado el poderoso tratamiento estadístico, matemático, relacional y de macros que tienen las hojas de cálculo. Sin embargo, al alcanzar la información un volumen de numerosas planillas, este proceso natural, surgido en su momento para dar respuesta a las necesidades de la acción institucional, lo transforma en una desventaja. (Ver Información Integrada para una Gestión Eficiente)

Feudos de Información

Es así que DocIRS ha encontrado gerencias, y áreas completas operando sobre planillas Excel, que ayudados por algún empleado con destreza y conocimiento sobre el manejo en Excel, han ido creando un sistema de complejo manejo de datos, el cual en un determinado momento comenzó a presentar ciertas desventajas. Efectivamente, en la mayoría de los casos el sistema

  • Las planillas están al servicio individual centralizado;

  • Las columnas y/o campos no son comunes a cada planilla;

  • No es posible o es dificultoso relacionarlos;

  • Los procedimientos para generar informes se tornan complicados;

  • No es eficiente disponibilizar vistas agregadas en Internet;

  • Es difícil montar interfases;

  • Es costoso migrar a una motor de base datos;

  • Tiene efecto negativos en el rendimiento y capacidad de los equipos

  • etc..

En resumen, el tener los datos en hojas de cálculo se transformó en un sistema caro mantener, aunque al principio funcionó muy bien para resolver problemas locales.  El precio y la dificultad,-  medido en horas hombre-, fueron  creciendo conjuntamente con el número de hojas de cálculo. Sin embargo, esto no ocurre de esa forma, si se construye sobre una base de datos, cuyo modelo  asegure un tratamiento de datos flexible, individualizado y  relacionado.

Sólo con Planeación Básica para la Migración

La experiencia de DocIRS, señala que con un plan básico orientado a conformar una base de datos, se puede  comenzar a automatizar un proceso eficiente con Excel. En efecto, dada la economía a escala que presenta esta herramienta en términos de usabilidad y también como potente interfaz de datos para el usuario. Especialmente cuando son múltiples usuarios, quienes deben enviar datos hacia alguna organización, desde donde  se centralizan y procesa estos datos para construir informes gerenciales y operativos.

Por ejemplo, cuando las más diversas instituciones deben extraer datos desde sus propias bases, a  fin de enviarlos. Digamos por ejemplo, postulaciones, datos financieros, demográficos, económicos, etc.. para alimentar esta institución centralizada, la que administra la cartera . (Estamos asumiendo que estos organismos A,B,C,D,.. no tienen el tiempo ni los recursos para configurar servicios <XML> que pueda ser consumido por un Web Services del administrador, lo que sería lo óptimo).

Protocolo, Plantillas y Administrador WEB

En efecto, si inicialmente se establece un protocolo  y plantillas con un conjunto de normas para el tratamiento de datos en lo referente al formato, los nombres, longitudes, tipos de campos y validaciones básicas que se irán utilizando, acompañados por documentación de las planillas y los campos que las constituyen, entonces puede desarrollarse sin dificultades una sustentable solución.

Con planificación se puede montar un Administrador Web, que cargue estas planillas hacia una base de datos remota. O también podría desarrollarse una aplicación propia en lenguaje Visual Basic del Excel (VBA), que  envíe los datos directamente a una base de datos remota en un servidor Internet. Así mismo podrían utilizarse macros para formular consultas y recibir las respuestas en las Hojas de Cálculo.

Esta base de datos remota, puede ser diseñada en forma universal y paramétrica. Es decir, si se envía una planilla que contiene un número distinto de columnas, la base de datos remota los ingresa de igual modo. El puente entre el usuario y la base de datos, es un conjunto de rutinas (ASP, PHP, javascripts, etc..) que contiene reglas parametrizadas que validan aquellos campos que previamente se acordaron, como así mismo el tipo de planilla fue registrado en un índice paramétrico.

A partir de los datos que van acumulando en la base de datos, se puede configurar un modelo de datos tipo estrella o cubo, que permitirá formar un reportes y un potente Panel de Control. A este efecto vamos a enunciar las funciones declarar(), subir(), validar() y obtener().

 

 

La propuesta de DocIRS vs Inmediatismo


Procedimiento MAC (Modulo de Administración de Cartera)

Construir desde abajo con paciencia es robusto y sustentable. En contraste, el inmediatismo de hacer informes directamente desde las planillas,  colapsa.

 

El procedimiento en DocIRS, se realiza con un encargado que dedica, - inicialmente-, significativas horas hombre . Esta persona es la que sistematiza el proceso, debiendo:

  • i) Declarar manualmente el tipo de planilla en el catalogo;

  • ii) Ingresar los campos obligatorios respectivos;

  • iii)  Equivalencias en los nombres de campos (términos externos hacia términos DocIRS);

  • iv) Exportar la planilla a formatos CSV;

  • v) Subirlo a la base de datos, eventualmente corregir si el sistema le devuelve errores en el LOG de respuesta;

  • vi) Obtener los reportes requeridos, revisarlos y entregarlos.

Aparentemente parece una tarea larga. Sin embargo, todo el tiempo invertido durante el periodo inicial de trabajo, se recupera con creces cuando el sistema ya ha recolectado los tipos de planillas y sus  especificaciones, cuando se van automatizando las consultas y se producen todos los reportes necesarios en línea, directamente desde la base de datos.

Elegir este camino demora más, pero es robusto y sustentable.

En efecto, el otro camino, - que en general se opta por parte de las gerencias- es por poner al encargado, a configurar los informes desde las planillas Excel, de modo que esta persona debe copiar, pegar, insertar formulas, combinar planillas, filtrar, etc.. y generar los informes. Inicialmente, este procedimiento es rápido porque permite entregar los reportes en un tiempo prudente, pero si el número de planillas va creciendo, cambiando y la demanda de informes se va haciendo más exigente, entonces esta forma de trabajar colapsa.

El procedimiento anteriormente descrito en el diagrama MAC, se realiza, a fin de solucionar el problema con aquellos interlocutores externos que trabajan con Excel,- (ciertamente no con aquellos que envían los datos con WebService)-. En efecto, el procedimiento le ha dado buenos resultados a DocIRS. Sabemos que pueden haber mejores formas para esta misma solución, por ejemplo  saltándose el paso de exportación al CSV, incorporando un objeto que lea el Excel desde la planilla, etc... No obstante, a DocIRS este método le ha permitido , - en múltiples ocasiones - , ir automatizando, mejorando y abordando eficientemente el Manejo de Datos. En síntesis, la idea es tener transformar al encargado en alguien que controla el proceso y manejando un cartera de decenas de planillas diarias con la herramienta.

Nótese que la curva azul representa el MAC (Modulo de Administración de Cartera) que con el tiempo va alcanzando cada vez una cantidad mayor y consistente de tratamiento de datos. La curva de color naranja es inversa cada vez necesita más tiempo y no alcanza los niveles requeridos.

Declarar Planilla en Catalogo

El proceso de ordenar el proceso Planillas Excel -> Base de Datos -> Servicios WEB, comienza por Declarar el tipo de Planilla. A este efecto, debe existir una nomenclatura bien definida y tablas relacionadas en la base de datos que capturan la declaración.

Una vez declarada la planilla con su nombre, los campos obligatorios que debiera contener, con la correspondiente asignación de la validaciones, tales como:

  • i) Sólo Numero V1

  •  ii) Sólo Letras V2

  • iii) Diferente de Vacío V3

  • iv) Valor Único en la Planilla V4

  • v) Cedula de Identidad (RUT) V5

  • vi) Monto V6

  • vii) Fecha V7

  • viii) Formato1 (ejemplo AA-XXXX-XX) V8

  • ix) Formato2 V9

  • x) Correlativo V10

  • xi) Etc.. …

Y las condiciones, por ejemplo

Si el campo tiene una validación Monto entonces se le deben asociar un mínimo y un máximo con los operadores de desigualdad. (Por ejemplo a<x<b o ]a,b[, [a,b])

Si el campo es Fecha de Nacimiento del Cliente, entonces validar que sea una ficha valida y que su edad al día de hoy es mayor que 18 años.

Si el campo es numero de operación y tiene una estructura mixta entre letras y números y debe ser único en la planilla. Etc..

La nomenclatura y relaciones se expresan mediante una interfaz que permite declarar y determinar una planilla.

Posteriormente el cliente puede subir todas las planillas del tipo P1 declarada en el catalogo, y el sistema se encargará de asignar un nombre a la planillas que la identifique según la fecha y el correlativo.

El proceso es el siguiente:

1.- La planilla Excel tipo P1 ha sido almacenada en formato CSV

2.- Selecciona el tipo de un ListBox y especifica el archivo que va a cargar

3.- Presiona el botón Subir.

Ejemplo Administrador WEB:

Al momento de ejecutar Subir Planilla se aplican las validaciones correspondientes por fila, y se comienza a ingresar en la tabla correspondiente los datos validados. Así mismo se configura un reporte LOG que podrá ser visualizado en el sitio, el cual señala si la planilla se incorporó exitosamente en la base de datos. Si este proceso no fue correcto, se debe corregir la planilla de acuerdo al reporte para subirla de nuevo.

Equivalencias de Términos

En todo caso, para aquellos que no se ajustan completamente a los formatos solicitados, siempre es posible definir  dentro de la nomenclatura una tabla de equivalencia de nombres de campos en el modelo de datos. Esta relación establece una correspondencia (n-->1) entre el nombre del campo que asignan las instituciones usuarias remotas con el nombre que se utiliza interiormente para ese mismo campo. Por ejemplo, los diferentes usuarios que carga planillas podrían subir el campo de identificación de identidad (Rut) con diferentes nombres:

Nombre Campo Usuario Nombre Campo Sistema
   

Rut

 

RutCliente

 

Cédula Identidad

txtRutCliente

Rut_Cli

 
...  

 

Este proceso, obliga al usuario a mejorar y aprender en corto tiempo a entregar su producto de acuerdo al protocolo acordado.

Nótese que el subprograma que realiza las validaciones debe hacer referencia a los campos por nombre (object byname) y no por posición de las columnas. Trabajar por identificación o nombre de las columnas de la grilla que se validan antes de subirlas a la base de datos es operar con un concepto básico de la Programación Orientada a Objetos, porque se unen datos y procesos. El error de tratar las validaciones por la posición de la columna es una verdadera "camisa de fuerza", puesto que cada vez que si se inserta o se elimina una columna de una planilla declarada en el catalogo forzará una serie de tareas que no sólo conllevan a perder tiempo, sino también a cometer errores

Síntesis

En síntesis, se puede construir un poderoso sistema de utiliza el Excel para armar las planillas de acuerdo a las plantillas declaradas, se sube a la base de datos remota en el servidor WEB, se le aplica el auditor según las validaciones básicas y cruzadas (pre-definidas por el equipo de proceso) y finalmente se presta servicios de consulta y reportes desde el sitio WEB a los usuarios registrados en el sistema.

Caso de Uso Externo

Caso de Uso externo

 

Casos de uso

Curso Normal de Eventos cuando se ejecuta el método declarar()

1.- Invocar a función subidor

2.- Si es válido el csv

2.1.- Crear un objeto Servicios

2.2.- Ejecutar el método subir(Servicio) para verificar que el servicio este disponible

2.3.- Si el servicio esta disponible

2.3.1.- Ejecutar método Validar(Servicio, parámetros)

2.3.2.- Almacenar en una variable el resultado del servicio

2.4.- No esta disponible

2.4.1.- Grabar el error usando la componente auditoria

2.5.- Destruir componente servicio

2.6.- Grabar el resultado de la operación con el método agregar de la componente auditoria

2.7.- Armar un xml con el resultado de la operación

3.- No es valido el xml

3.1.- Grabar el error usando la componente auditoria

3.2.- Grabar el resultado de la operación con el método agregar de la componente auditoria

3.3.- Armar un xml con el resultado de la operación

4.- Retornar un xml con el resultado de la operación

Si existe algún error en la operación se debe grabar el error usando la componente auditoria y se debe almacenar el error en la propiedad serror

 

Modelo de Datos de Administrador WEB de Cartera de DocIRS

(Articulo en construcción...)


 

Bibliografía: