Caso: Ambientes distintos que contienen la misma información En la universidad se maneja 2 motores de bases de datos, el DB2 y el ORACLE. La Universidad tiene desarrollos propios que acceden a tablas de DB2 y además se adquirió un paquete llamado Exactus el cual utiliza ORACLE. La Universidad por su parte desarrolló algunos sistemas a la medida, algunos ejemplos de ello son: Planillas (PL): Perteneciente al sistema de personal, encargado de deducir las remuneraciones, descuentos, bonificaciones, etc. que se les da a los trabajadores de la Universidad ). Cuentas Corrientes (CC): Encargada de la cobranza por los servicios que la universidad da a nivel del alumno ( por ejemplo cobros por derechos de enseñanza, cargos a boleta de alumnos de eventos, material de lectura, compra de libros, etc ). Administración de Eventos (AE): Administración y cobranza de eventos que la Universidad ofrece para público en general. Exactus se adquirió con varios módulos, entre ellos los módulos de Contabilidad General y el de Presupuestos. El Software manejaba los conceptos de centro de costo y cuenta contable. Centro de Costo: Unidad administrativa de la Universidad con la facultad de administrar los ingresos y egresos obtenidos por las actividades que se realizan. Cuenta Contable: La asignación de cuentas de cargo y abono que se maneja para la contabilidad. En el año 2000 se incorpora en Exactus el concepto de Actividad, que es un hecho realizado por un centro de costo ( o unidad presupuestal ) el cual registra gastos e ingresos. Problemática Los centros de costo, cuentas contables y actividades son creados y administrados desde Exactus. Estos conceptos son usados por la contabilidad y presupuestos. Posteriormente se incluyeron los mismos conceptos en los sistemas de PL, CC y AE. Por ejemplo en PL los datos que se graban son los siguientes: - Fecha de Planilla - Dependencia que genera el costo - Cuenta Contable a la que va el movimiento - Actividad - Monto ( 01/01/2003 ) ( 667000 ) ( 62.1.05.1.1.01.07 ) ( AC.66.001.2003 ) ( S/. ) El dato de dependencia se utiliza para obtener el centro de costo a usar, para el ejemplo citado sería 66.70.00, pero dado a que esta información no se encontraba en el entorno DB2 tuvo que hacerse una copia de estos datos almacenados en ORACLE. El problema se daba cada vez que se creaba una nueva dependencia o una nueva unidad dentro de una dependencia a la que había que asignarle un centro de costo. A final de mes, que era la fecha en donde se ejecutaba los procesos para generar la planilla, saltaban errores debido a que los centros de costos nuevos SI eran ingresados, pero a ORACLE, y no se ingresaban a DB2. A causa de ello había que descargar lo que se encontraba en ORACLE a un archivo plano y luego levantar la información a DB2. Este proceso era totalmente manual. La situación era más tediosa cuando el problema se daba en cuentas corrientes y eventos, ya que ellos generan información con mayor frecuencia que la planilla de trabajadores. La información de centro de costo era necesaria para la generación automática de Asientos Contables. Como solución se desarrolló un aplicativo capaz de tener sincronizada la información de ambas bases de datos al momento de generar los Asientos Contables. Cabe resaltar que la generación de los Asientos para PL, CC y AE eran hechos en DB2 y luego por una herramienta migradas a ORACLE. El problema también se presentó con lo que hemos definido como ACTIVIDAD. La creación de actividades era mucho más frecuente que la de centros de costo. Las actividades se creaban en ORACLE y necesitaban también tenerse en DB2. La solución fue incluir una rutina más que al momento de crear o modificar una actividad en ORACLE haga lo mismo en DB2, de esta forma a pesar de tener la misma información replicada en 2 lugares diferentes se tenía siempre sincronizada.