Sistema LUCIA: 20 años de una KB en producción.


En estos días se cumplen los (primeros) 20 años de la puesta en producción del Sistema LUCIA en la Aduana de Uruguay. Voy a contar un poco su historia.

Comienzo

Durante 1998, trabajamos con un conjunto de consultores peruanos para poner en producción un sistema donado por la aduana de Perú a la aduana de Uruguay. El mismo fue realizado en Visual FoxPro y Oracle.

Nosotros nos propusimos lograr convertir toda la aplicacion a GeneXus de forma que nos fuera fácil mantenerla en el futuro, pero teníamos plazos muy estrictos que cumplir para sustituir una aplicación que funcionaba en un mainframe y que tenia problemas con las fechas en el año 2000.

El plan inicial de puesta en producción, fue una mezcla de aplicaciones hechas en Visual FoxPro y otras hechas en GeneXus, por ejemplo todas las consultas web fueron hechas con el generador C/SQL.  Salimos con el modulo de exportación, que era el que tenia menos operaciones y como manejaba menos dinero, era mas fácil para empezar.
Fueron momentos divertidos mientras había operaciones que estaban en el sistema viejo y se pasaban al sistema nuevo, se necesitaron migraciones de datos e interconexión física entre los sistemas.

Genexus 7.0

Empezamos en la versión GeneXus 7.0, generando Visual FoxPro y base de datos Oracle.
Hacer convivir una aplicación hecha a mano y compartir una base de datos diseñada por humanos con una aplicación GeneXus no fue una tarea fácil. Por ejemplo, teníamos mas de 5 schemas diferentes donde estaban las tablas y eso en GeneXus obliga a tener Data View para poder acceder a las tablas. Ademas, los nombre de los atributos de las tablas, no tenían los nombres requeridos por GeneXus para entender que el campo CodigoMoneda "era lo mismo" que el CodigoMonedaPais. En algunos casos podíamos usar subtipos y en otros casos debíamos usar un nombre interno diferente al nombre externo.

Los siguientes meses fueron intensos. Poníamos en producción TODOS LOS DIAS, arreglos y mejoras y una vez por mes mas o menos se instalaban en produccion  modulos nuevos (Importacion, Transito, Depósitos, Cargas, Riesgo y módulos de control, para saber donde estaba el trámite, controles de laboratorio, Cobranza, e interconexión con otros organismos).

GeneXus 7.5

En el año 1999,  ya teníamos algunos módulos en producción estamos interconectados con otros organismos a través de redes de valor agregado (VAN) y las usábamos para intercambiar archivos planos con la información. En la actividad aduanera, hay muchos controles que son realizados por otros organismos, por ejemplo los controles fitosanitarios los hace MGAP, el control de las mercaderías en Admisión Temporaria lo hace LATU, etc.
Cuando los intercambios se fueron haciendo mas numerosos y sofisticados, evaluamos un formato que recién se estaba definiendo que se llamaba XML (su primera versión fue de 1998).
Para poder leer XML pasamos a GeneXus 7.5 y por un tiempo mantuvimos una KB en GeneXus 7.0 y otra en GeneXus 7.5.

GeneXus 8.0

Cuando pasamos a GeneXus 8.0, se empezaron a publicar también todas las operaciones diarias en formato XML, lo cual posibilitó que se formaran varias empresas que procesan dicha información.
Seguíamos utilizando el generador Visual FoxPro (win) y C/SQL (Web y procesos batch).

Recuerdo con cariño que para generar un procedure como ejecutable había que poner en el código
    
   MSG('main') 

al principio, pues no había una propiedad para declararlo.

GeneXus 9.0

Paso el tiempo, y Microsoft nos dio a entender que Visual FoxPro no iba a ser mantenido y cuando hicimos la migración a GeneXus 9.0, cambiamos todo al generador C#, con Oracle.
Al principio utilizaba ODBC y luego cambiamos a ADO para mejorar la performance.
En ese momento, trabajamos con KB separadas por módulos y las consolidamos con una herramienta llamada KBMake que lo que hacia era tomar los objetos cambiados de cada una de las KB exportarlos y consolidarlos en la KB central (EL CONSOLIDADO).  Usábamos GXPublic para realizar estas operaciones. También teníamos el KBDoctor que permitia leer información de la KB, y detectar algunos problemas.

GeneXus X

Llego la liberación de la GeneXus X y migramos a la versión Evo1, pero decidimos esperar a poner en producción, hasta que estuviera la versión Evo2. Esta fue la ultima versión en la cual tuvimos algunos programas WIN, pues los fuimos pasando todo a WEB. Incorporamos GXServer desde la primera versión.

En el 2016 realizamos la migración a GeneXus Evo3 y es la versión en la cual estamos en producción hoy, utilizamos el generador C#, Oracle.

Además de agregarle nuevas funcionalidades, hemos hecho trabajo de actualización tecnológicas como modularizar, build automático, deploy automático, testeo manual, testeo automático con GXTest y programas nuestros, se le incorporó BI, inteligencia artificial, etc.

Migraremos a GeneXus 16 el año que viene.

Algunos números que me resultaron interesantes (acumulados en 20 años)

Item  Valor Unidad
Recaudación
38,627,870,023
  U$S
Recaudación diaria (promedio)
5.291.489
  U$S / dia
Declaraciones (DUA)
6.495.684
  DUA
Declaraciones de Carga (Barco/Camion/Avion):
3.583.525   Manifiestos
Declaraciones (x Empresa)
13.687.255
  Conocimientos


Datos de la KB



Tablas
999
  
Objetos (programas)
11.612
  
Objetos (programas + atributos + temas + archivos, etc)
27.214
  
Módulos
102   
Bases de Datos (Instancias Oracle)
4
  
Bases de Datos (Tamaño en TB)
4.5
  
Lineas de Codigo (millones)
16.7
  
Archivos fuentes (*.cs)
21.000
  


Organismos con los cuales intercambia información (web services y otros conexiones)

  • Ministerio de Salud Pública
  • Ministerio de Ganadería Agricultura y Pesca
  • Ministerio de Industria, Minería y Energía
  • ANCAP
  • LATU
  • INAC
  • INAVI
  • SUL
  • DINARA
  • INASE
  • URSEC
  • URSEA
  • VUCE
  • BSE
  • BPS
  • DGI
  • DNIC
  • BROU
  • ANP
  • HomeBanking
  • Aduanas del Mercosur
Aun le quedan muchas mejoras para hacerle, pero es un sistema importante para el país.

Comentarios

Publicar un comentario

1) Lee el post
2) Poné tu opinión sobre el mismo.
Todos los comentarios serán leidos y la mayoría son publicados.

Entradas más populares de este blog

La nefasta influencia del golero de Cacho Bochinche en el fútbol uruguayo

Aplicación monolítica o distribuida?

Funcionalidades de GeneXus que vale la pena conocer: DATE Constants.