Acerca de Compañía General de Esencias, S.L.
Compañía General de Esencias, S.L. (CGE) está especializada en la creación y desarrollo de fragancias para perfumes y detergentes. Fue fundada en Barcelona en el año 1948 como empresa familiar, desarrollando en un principio toda su actividad en el mercado español. Actualmente exporta a 14 paises...
Introducción del sistema informático
Desde 1985, el sistema informático de CGE utiliza Apple Macintosh
y desde 1991 se ha estado utilizando 4D como base de datos para almacenar
la información de los tres departamentos principales: Compras/Ventas/Producción,
Laboratorio y Contabilidad.
Cada departamento dispone de un programa específico: MacEssence (Compras/Ventas/Producción), MacLabintosh (Laboratorio) y MacNum (Contabilidad).
MacEssence gestiona todo lo relacionado con compras, ventas, fabricación, inventario, facturación, expedición y estadísticas.
MacLabintosh es una herramienta para perfumería. Permite gestionar todo lo relacionado con las fragancias, así como su clasificación y contiene un potente y flexible motor de búsqueda que permite seleccionar las fragancias clasificadas.
MacNum es el programa de contabilidad general, multi-ejercicio y multi-empresa, que incluye un módulo de contabilidad analítica.
Sin interconexión hay problemas y más problemas...
Hasta el año 2003 CGE utilizaba la versión 4D 6.8, la cual no ofrece un mecanismo automático de fácil implementación para interconectar las bases de datos. Esa falta de interconexión entre bases de datos genera una serie de problemas:
- Problema #1: la falta de sincronización genera datos redundantes. Al no poder disponer de ciertos datos en tiempo real, es necesario guardar una copia de esos datos en las bases de datos que requieran acceso a ese tipo de información. El problema más obvio que surge es el de propagar las modificaciones, ya que es un proceso manual que entorpece el flujo natural de los datos.
- Problema #2: para sincronizar los datos se han de exportar vía
documentos. Hasta la versión 2003, la manera más común
de transmitir datos entre dos o más bases de datos es la de exportar
vía documentos. La base de datos emisora exporta, es decir, genera
un documento con los datos (p.ej.. delimitados por tabulador) y la base
de datos receptora importa el documento para añadir, modificar o
borrar los datos que sean necesarios. Este proceso entorpece el trabajo,
ya que se tiene que hacer una pausa para poder realizar la operación
de mantenimiento.
- Problema #3: hasta que no se importan los datos, la información no está al día. Al no haber una conexión automática entre las diferentes bases de datos, los datos modificados en una base no se propagan hasta que se realiza la operación de exportación/importación. La falta de sincronización da lugar a ambigüedades, ya que según qué base de datos se consulte, la información puede ser dispar.
- Problema #4: la existencia de datos redundantes complica la gestión de la base de datos. Es decir, no solamente se necesitan tablas adicionales para guardar los datos, sino que además se necesitan métodos/rutinas para mantener esta infraestructura adicional.
La presencia de esta serie de problemas complicaba la tarea entre departamentos, al mismo tiempo que limitaba la posibilidad de ampliar y mejorar las aplicaciones.
Una salvación llamada "Servicios Web"
Una de las grandes alegrías que me llevé cuando leí la ficha técnica de 4D 2003 era la incorporación de "Servicios Web". Este tipo de servicio utiliza el protocolo SOAP (Simple Object Access Protocol), una tecnología que permite la comunicación entre aplicaciones distintas, independientemente de la plataforma y del lenguaje de desarrollo. En un principio, algunas de las ventajas que ofrece son las siguientes:
- Interoperatividad: eliminación de los datos redundantes. Sincronización al momento.
- Agilidad: comunicación en tiempo real. Simplificación de la gestión de los datos.
- Transparencia: propagación automática de los datos entre diferentes sistemas.
- Universalidad: la interoperatividad es independiente del sistema operativo utilizado, ya sea Mac, Windows, Linux, etc.
- Simplicidad: aprender a utilizar los Servicios Web es fácil y permite incorporarlos a la aplicación existente.
Todo esto suena muy bien, pero ¿se trata de una exageración o por el contrario cumple con las promesas? Veamos si CGE se ha podido beneficiar de esta supuesta maravilla que pretende ser los “Servicios Web”...
Interoperatividad
En este apartado, el beneficio ha sido muy importante ya que se han podido eliminar la redundancia de datos y ha permitido automatizar procesos que antes eran muy difíciles de implementar de una manera ágil y transparente. Ejemplos:
Comunicación MacLabintosh <---> MacEssence
- Traspaso de una fórmula de Laboratorio a Producción.
- Actualización de los precios de las materias primas en tiempo real.
- Obtención de los clientes del Departamento de Ventas para el etiquetado de muestras.
- Obtención del punto de inflamación (Flash Point) para realizar el estudio de inflamabilidad del almacén.
- Obtención de los kilos vendidos de un producto. En Laboratorio, permite identificar los productos que más se venden.
Comunicación MacEssence ---> MacNum
- Envío de la factura de Ventas a MacNum, creándose el asiento contable, añadiendo la factura al Libro del I.V.A. y actualizando la tesorería.
Comunicación MacEssence ---> Chem-SD
- Análisis en tiempo real de la fragancia que va a ser etiquetada para la venta. Permite obtener las frases de riesgo y otra información para el correcto etiquetado del producto.
Comunicación MacEssence ---> Servicio Web bancario (externo a CGE)
- Permite obtener las últimas cotizaciones monetarias para el Departamento de Exportación.
Agilidad
Eliminar el proceso de exportación e importación ha facilitado la labor a todos los departamentos de la empresa. El beneficio es obvio.
Transparencia
Los usuarios no son conscientes del vaivén de datos que fluyen entre las tres aplicaciones. Para ellos, los datos aparecen totalmente integrados en la aplicación que utilizan, cuando en realidad se han obtenido de una o más bases de datos.
Universalidad
Esta ventaja se hizo patente el día en que se incorporó un programa llamado Chem-SD, escrito en Visual Basic/.NET y ejecutado en un PC con Windows XP. Chem-SD tiene en cuenta las últimas directrices de la UE para analizar las fragancias en venta.

Gracias a los servicios web que incorpora, ha sido muy sencilla la implantación de un sistema en el que MacEssence obtiene los datos de Chem-SD necesarios para etiquetar correctamente los envases de las fragancias. Sin la posibilidad de utilizar los Servicios Web, hubiera sido un auténtico puzzle a resolver, y a que la naturaleza del problema requiere una comunicación en tiempo real entre los dos sistemas. Los Servicios Web lo solucionan de una manera brillante.
Simplicidad
Los Servicios Web que se han ido incorporando en MacEssence, MacLabintosh y MacNum se han realizado sobre la marcha. 4D permite incorporar los Servicios Web en cualquier momento y por partes, es decir, no se trata de tener que decidir “todo o nada”. Se pueden ir mejorando las rutinas lentamente e incorporando las ventajas que los Servicios Web ofrecen, paulatinamente.. En mi caso particular, empecé adaptando algunas rutinas a los 5 minutos de empezar a leer acerca de los Servicios Web.
Conclusión
La incorporación de los servicios web en el sistema informático
de CGE ha permitido optimizar el flujo de información entre las
tres aplicaciones principales, reducir los costes de mantenimiento del
sistema en general, permitir la incorporación de sistemas operativos
y aplicaciones de otros vendedores y finalmente, la incorporación
ad-hoc de nueva funcionalidad según se necesite, vía publicación
de métodos especializados.
La apuesta inicial de incorporar servicios web ha sido muy beneficiosa y ha traspasado con creces los objetivos que se habían marcado inicialmente, permitiendo a CGE crecer sin temor a quedarse con un sistema informático obsoleto en poco tiempo.
Tito
Ciuro
Miami – Abril
2005
El primer anexo detalla una conexión básica Servidor Servicios Web / Cliente Servicios Web con los requisitos y pasos intermedios. Se trata de enviar datos elementales, variables, campos, arrays, entre dos bases 4D conectadas... por un simple canal http.
En la segunda entrega, exploramos la comunicación de objetos complejos mediante BLOBs. Estas estructuras, tambien conocidas como "Bags", son colecciones de objetos que incluyen campos, arrays, variables, listas jerárquicas, registros, punteros e incluso otros Bags. Cualquier valor almacenado va relacionado con una etiqueta, lo cual permite extraerlo facilmente. Con Bags, podemos llevar los Servicios Web a otro nivel, consiguiendo una flexibilidad excelente sin aumentar la complejidad de la aplicación. El nivel técnico de este segundo anexo es más avanzado e interesará también a los desarrolladores ya experimentados con los Servicios Web. Una base de ejemplo se proporciona junto con el artículo.

El departamento
de expedición desea expedir.
Da la orden.
MacEssence
recoge toda la información concerniente al pedido
en cuestión.
Expedición
envía
el pedido a MacNum, para que éste
lo
desglose, generando el asiento
correspondiente, añadiendo la factura
al libro del
I.V.A. y actualizando la tesorería. Una vez realizada esta operación,
devuelve el número de factura a Expedición.
Expedición
contacta con Chem-SD para obtener todos los datos necesarios (frases de
riesgo/seguridad) que irán en las etiquetas.
Expedición
procede a imprimir las etiquetas, los albaranes y las
facturas.
Todo
con un clic.