Sobre a Companhia Geral de Essências, S.L.
Companhia Geral de Essências, S.L. (CGE) está especializada na criação e desenvolvimento de fragrâncias para perfumes e detergentes. Foi fundada em Barcelona no ano de 1948 como empresa familiar, desenvolvendo em um princípio toda a sua atividade no mercado espanhol. Atualmente exporta a 14 países...
Introdução do sistema informático
Desde o ano de 1985, o sistema informático da CGE utiliza Apple Macintosh, e desde o ano de 1991, há estado utilizando-se 4D como banco de dados para armazenar a informação dos três departamentos principais: Compras/Vendas/Produção, Laboratório e Contabilidade.
Cada departamento dispõe de um programa específico: MacEssence (Compras/Vendas/Produção), MacLabintosh (Laboratório) e MacNum (Contabilidade).
MacEssence administra tudo o que está relacionado com compras, vendas, fabricação, inventário, faturamento, expedição e estatísticas
MacLabintosh é uma ferramenta para perfumaria. Permite administrar todo o que está relacionado com as fragrâncias, assim como a sua classificação, e contém um potente e flexível motor de pesquisa que permite selecionar as fragrâncias classificadas.
MacNum é o programa de contabilidade geral, multi-exercício e multi-empresa, que inclui um módulo de contabilidade analítica.
Sem interconexão tem problemas e mais problemas...
Até o ano de 2003, a CGE utilizava a versão 4D 6.8, no qual não oferece um mecanismo automático de fácil implementação para interconectar os bancos de dados. Essa falta de interconexão entre bancos de dados gera uma série de problemas:
- Problema #1: A falta de sincronização gera dados redundantes. Ao não poder dispor de certos dados em tempo real, é necessário guardar uma cópia desses dados nos bancos de dados que requeiram acesso a esse tipo de informação. O problema mais óbvio que surge é o de propagar as modificações, já que é um processo manual que entorpece o fluxo natural dos dados.
- Problema #2: Para sincronizar os dados, se há de exportar via documentos. Até a versão 2003, a maneira mais comum de transmitir dados entre dois ou mais bancos de dados é a de exportar via documentos. O banco de dados emissora exporta, quer dizer, gera um documento com os dados (p.ej..delimitados por tabulador) e o banco de dados receptora importa o documento para acrescentar, modificar ou apagar os dados que sejam necessários. Este processo entorpece o trabalho, já que tem que fazer uma pausa, para poder realizar a operação de manutenção.
- Problema #3: Enquanto não importar-se os dados, a informação não está ao dia. Ao não haver uma conexão automática entre os diferentes bancos de dados, os dados modificados em um banco não se propagam até que realize-se a operação de exportação/importação. A falta de sincronização dá lugar a ambigüidades, conforme quê banco de dados consulte-se, a informação pode ser díspar.
- Problema #4: A existência de dados redundantes complica a gestão do banco de dados. Quer dizer, não precisam somente de tabelas adicionais para guardar os dados, senão, que além do mais, também precisam de métodos/rotinas para manter esta infra-estrutura adicional.
A presença desta série de problemas complicava a tarefa entre departamentos, ao mesmo tempo que limitava a possibilidade de ampliar e melhorar as aplicações.
Uma salvação chamada "Serviços Web"
Uma das grandes alegrias que levei quando li a ficha técnica do 4D 2003 era a incorporação de "Serviços Web". Este tipo de serviço utiliza o protocolo SOAP (Simple Object Access Protocol), uma tecnologia que permite a comunicação entre aplicações diferentes, independentemente da plataforma e da linguajem do desenvolvimento. Em um princípio, algumas das vantagens que oferece são as seguintes:
- Interoperatividade: Eliminação dos dados redundantes. Sincronização no momento.
- Agilidade: Comunicação em tempo real. Simplificação da gestão dos dados.
- Transparência: propagação automática dos dados entre diferentes sistemas.
- Universalidade: A Interoperatividade é independente do sistema operativo utilizado, seja Mac, Windows, Linux, etc.
- Simplicidade: aprender a utilizar os Serviços Web é fácil e permite incorporá-los à aplicação existente.
Todo isso parece muito bom, mais, trata-se de uma exageração ou pelo contrário cumpre com as promessas? Vejamos se CGE pôde beneficiar-se desta suposta maravilha que pretende ser os “Serviços Web”...
Interoperatividade
Neste apartado, o benefício tem sido muito importante, já que pôde-se eliminar a redundância de dados e há permitido automatizar processos, que antes eram muito difíceis implementar de uma maneira ágil e transparente. Exemplos:
Comunicação MacLabintosh <---> MacEssence
- Traspasso de una fórmula de Laboratório à Produção.
- Atualização dos preços das matérias-primas em tempo real.
- Obtenção dos clientes do Departamento de Vendas para o etiquetado de amostras.
- Obtenção do ponto de inflamação (Flash Point) para realizar o estudo de inflamabilidade da loja.
- Obtenção dos quilos vendidos de um produto. No Laboratório, permite identificar os produtos que são mais vendidos.
Comunicação MacEssence ---> MacNum
- Envio da fatura de Vendas a MacNum, criando-se o assentamento contábil, acrescentando a fatura ao livro de imposto e atualizando a tesouraria.
Comunicação MacEssence ---> Chem-SD
- Análises em tempo real da fragrância que vai ser etiquetada para a venda.
Permite obter as frases de risco e outra informação para o correto etiquetado do produto.
Comunicação MacEssence ---> Serviço Web bancário (externo a CGE)
- Permite obter as últimas cotações monetárias para o Departamento de Exportação.
Agilidade
Eliminar o processo de exportação e importação, tem facilitado o trabalho a todos os departamentos da empresa. O benefício é óbvio.
Transparência
Os usuários não são conscientes do vaivém de dados que fluem entre as três aplicações. Para eles, os dados aparecem totalmente integrados na aplicação que utilizam, quando na realidade se obtiveram de um ou mais bancos de dados.
Universalidade
Esta vantagem se fez patente no dia em que se incorporou um programa chamado Chem-SD, escrito em Visual Basic/.NET e executado em um PC com Windows XP. Chem-SD, tem em conta às últimas diretrizes da UE para analisar as fragrâncias em venda.

Graças aos serviços web que incorpora, tem sido muito simples a implantação de um sistema em que MacEssence obtém os dados da Chem-SD necessários para etiquetar corretamente as embalagens das fragrâncias. Sem a possibilidade de utilizar os Serviços Web, teria sido um autêntico puzzle a resolver, e que a natureza do problema requer uma comunicação em tempo real entre os dois sistemas. Os Serviços Web o solucionam de uma maneira brilhante.
Simplicidade
Os Serviços Web que foram incorporando-se em MacEssence, MacLabintosh e MacNum realizaram-se sobre o funcionamento. 4D permite incorporar os Serviços Web em qualquer momento e por partes, que dizer, não se trata de ter que decidir “tudo ou nada”. Podem ir melhorando as rotinas lentamente e incorporando as vantagens que os Serviços Web oferecem, paulatinamente. No meu caso particular, comecei adaptando algumas rotinas aos 5 minutos depois de começar a ler sobre os Serviços Web.
Conclusão
A incorporação dos serviços web no sistema informático da CGE tem permitido otimizar o fluxo de informação entre as três aplicações principais, reduzir os custos de manutenção do sistema em geral, permitir a incorporação de sistemas operativos e aplicações de outros vendedores e finalmente, a incorporação ad-hoc de nova funcionalidade conforme precise, via publicação de métodos especializados.
A aposta inicial de incorporar serviços web, tem sido muito benéfica e tem traspassado com acréscimo os objetivos que se haviam marcado inicialmente, permitindo a CGE crescer sem temor a ficar com um sistema informático obsoleto em pouco tempo.
Tito
Ciuro
Miami – Abril de
2005
O primeiro anexo detalha uma conexão básica Servidor Serviços Web / Cliente Serviços Web com os requisitos e passos intermédios. Trata-se de enviar dados elementais, variáveis, campos, arrays, entre dois bancos 4D conectados... por um simples canal http.
Na segunda entrega, exploramos a comunicação de objetos complexos mediante BLOBs. Estas estruturas, também conhecidas como "Bags", são coleções de objetos que incluem campos, arrays, variáveis, listas hierárquicas, registros, ponteiros e inclusos outros Bags. Qualquer valor armazenado relacionado com uma etiqueta, no qual permite extraí-lo facilmente. Com Bags, podemos levar os Serviços Web a outro nível, conseguindo uma flexibilidade excelente sem aumentar a complexidade da aplicação. O nível técnico deste segundo anexo é mais avançado, interessará também aos desenvolvedores já experimentados com os Serviços Web. Um banco de exemplo proporciona-se junto com o artigo.

O departamento
de expedição deseja expedir.
Dá a ordem.
MacEssence
recolhe toda a informação relacionada ao pedido
em questão.
Expedição
envia
o pedido a MacNum, para que este
o
separe, gerando o assentamento
correspondente, acrescentando a fatura
ao livro de
IMPOSTO e atualizando a tesouraria. Uma vez realizada esta operação,
devolve o número de fatura à Expedição.
Expedição
contata com Chem-SD para obter todos os dados necessários (frases de
risco/segurança) que irão nas etiquetas.
Expedição
procede a imprimir as etiquetas, os recibos e as
faturas.
Tudo
com um clique.