Business - Automação Comercial

Automação Comercial (ECF) x Integração com Software

Uma introdução para o programador no cenário atual de desenvolvimento para PDV; como funciona; o que a lei permite que o software faça e não faça...

por Claudenir Andrade



No ano de 1994, foi aprovada a lei que exige de todos os estabelecimentos comerciais a instalação de equipamentos fiscais em seu Ponto de Venda – todos que realizem vendas ao consumidor final.

Desde então, a lei, como tudo em nosso País, passou por uma constante evolução, por modificações, adendos e convênio o que representa para nosso mercado (Software de Automação), uma oportunidade de evolução tecnológica e, ao mesmo tempo, uma necessidade de reestruturação do sistema como um todo e da própria "software house". Hoje, estamos tão "evoluídos" (se é que podemos chamar a isto de evolução) que até mesmo o TEF - Transferência Eletrônica de Fundos, foi legislado como de Responsabilidade da Empresa de Software e do Software de Automação, para que controle toda a transação.

Está contemplado no novo convênio 50/00, que o software "frente de caixa" (é assim que costumamos chamar todo software que interage com a impressora fiscal) também deverá apresentar relatórios contábeis e mapas resumo de toda e qualquer operação realizada com a impressora fiscal durante o dia, a semana ou o mês em questão.

Bem, vamos por partes... Entendamos um pouco como funciona "no bit" o trabalho do software com uma impressora fiscal.

Impressora Fiscal

Muitos desenvolvedores encaram esta impressora como uma MiniImpressora normal para se trabalhar, aí está o engano e também a dificuldade de entender seu desenvolvimento. A impressora fiscal contém um set de comandos próprio, com instruções próprias para a emissão de documentos fiscais e relatórios, sendo assim, ela não se comporta com uma "LX300" que você liga na paralela e pronto. A consideração deve começar pelo fato de todas elas (por uma exigência legal) terem uma saída serial (RS232) seja DB9 ou DB25 pinos. Com esta interface, já se torna um pouco mais difícil a operação, tornando necessário um protocolo de comunicação para o uso destas impressoras.

Infelizmente, em nosso País vivemos a "Babilônia" das impressoras fiscais, os fabricantes não se entendem e cada um eles estabelece seu protocolo de comunicação, o que, por sua vez, causa um grande trabalho de codificação para a parte do desenvolvedor.

A título de exemplo, a Mecafe trabalha com um protocolo que inicia pelo byte (02) STX e finaliza com um CRC único; já a Bematech começa com um (02) e termina com dois CRCs um que representa o byte mais sig e mais outro que representa o resto da divisão por 256 (valor comportado por um byte). Hoje, no mercado atuam pelo menos seis fabricantes expressivos, ou seja, são seis IF´s que o desenvolvedor terá de incluir, imagine agora você com o seguinte código:

Listagem 1: Verificação do tipo da impressora utilizada

If Mecafe then
	....
If Sweda then
	....
If Bematech then
	....

Onde, para cada fabricante, deverá haver um correspondente set de comandos diferentes, um diferente protocolo de comunicação e cálculos diferentes!!! Quantas e quantas horas de código você terá que disponibilizar para deixar seu software "falando" com os principais fabricantes!

Pensando nisso, a AFRAC de São Paulo, está montando um "braço" de associados composto por empresas de Software, fato que pode tornar-se uma luz no fim do túnel para nós desenvolvedores, pois já foi estabelecido por este grupo um padrão de interface para as impressoras fiscais, cujo conteúdo deverá modelar as adequações de todo fabricante de impressora fiscal. As empresas de software podem associar-se a este grupo.

DLLs e Drivers - Middleware Facilitadores

Com o objetivo de facilitar a integração com a impressora fiscal, os fabricantes disponibilizam drivers ou DLLs que auxiliam ou oferecem recursos de alto nível para a comunicação com as impressoras fiscais, possibilitando um rápido desenvolvimento de software com a impressora fiscal.

Esta excelente intenção acabou caindo no mesmo funil de "Babel" de facilitadores, ou seja, o facilitador da Bematech não é o mesmo que a Sweda que não é o mesmo que o da Mecafe.

Infelizmente, no mercado hoje existem mais de seis DLLs diferentes para cada fabricante de impressoras fiscais. DLLs que não conversam entre si e voltam a trazer o trauma dos "IFs" nos códigos (If DLL Mecafe.... then If DLL Bematech then .... If DLL Sweda then ... ) o que de nada facilita nossa vida...

A este respeito, a AFRAC estabeleceu um padrão de DLL com chamadas de funções de alto nível como: Afrac_LeituraX() ou Afrac_VendeItem (código, valor, etc...) esta iniciativa seguramente será um grande passo para o mercado de desenvolvedores para automação comercial.

Assim, esta mesma interface deverá "falar" com todas as impressoras fiscais no mercado, ou seja, tire Bematech e coloque Mecafe ou tire Mecafe e coloque Bematech que o software terá que funcionar sem problemas de compatibilidade, ajustes no código e sem a necessidade de estar colocando os IFs dos quais falei.

TEF - Transferência Eletrônica de Fundos

O TEF, o segundo convênio de legislação assinado e aprovado, agora é de obrigação nossa: desenvolvedores de aplicação. Como? Como integrar o Software com o TEF? Como integrar as compras com cartão de crédito?

Bem, vamos por partes - como diz o Jack...

Esquema de funcionamento de aplicativo de automação

Figura 1: Esquema de funcionamento de aplicativo de automação

Para deixar o software compatível com as administradoras, existe a necessidade da aquisição de um kit TEF, fornecido atualmente apenas pela Procomp, porque outros fabricantes de impressoras fiscais ainda não se posicionaram no mercado como revendedores desta solução. Este kit inclui: um Pinpad (Teclado numérico com leitor de cartão) e um kit de software para a comunicação com as administradoras.

Existem duas empresas "certificadoras" que estarão autorizando as software houses a trabalhar com este kit, tal autorização é concedida após homologação na SevenPDV e SoftwareExpress, duas empresas escolhidas pelas Bandeiras para efetuar a certificação dos software.

No micro em que o software frente de caixa está rodando, deverá ser instalado um GP (Gerenciador Padrão) este gerenciador é o que conversará com seu aplicativo através de arquivo texto, ou seja, o GP fica "alocado" no canto do vídeo, sempre ativo e buscando arquivos em um determinado diretório.

Quando sua aplicação cria um arquivo para ser enviado para a administradora, o GP é aberto na tela, o cliente escolhe a forma de pagamento e o GP efetua a comunicação via modem com as administradoras. Apos a aprovação da transação, o GP cria um arquivo Texto de resposta, que deverá ser capturado por seu aplicativo, retrabalhado e impresso no ECF através de um documento fiscal chamado "Relatório Não Fiscal Vinculado"....UFA!! Que maratona... mas é exatamente assim que você deverá fazer para deixar seu software compatível com TEF e dentro da Legislação.

Finalizando, os fabricantes de automação comercial: Bematech, Sweda, Unisys, Procomp, Mecafe e os outros treze existentes em nosso país, infelizmente estão muito longe de nossa realidade, muito longe de uma união de Protocolos e MIDDLEWARE, muito longe do que nós, desenvolvedores que fazermos a "roda do mercado de automação" girar, necessitamos. No dia em que o foco na venda de equipamentos for direcionado a preço, pós-venda, atendimento e suporte, aí sim, neste dia os fabricantes terão enxergado a real necessidade do mercado e estarão rumando para a excelência em atendimento e apoio a suas software houses.

Sobre o Autor

Claudenir Andrade é formado pela Academia de Sistemas Informáticos de Madrid, trabalha com automação comercial há sete anos, gerenciando a equipe de desenvolvimento de MiddleWare da Bematech para conectividade com os periféricos de automação comercial na América Latina. É também responsável pelo Programa de Parcerias da Bematech - Bematech Software Partners. Foi palestrante de vários eventos de automação comecial, incluindo o BDD - Bematech Developers Days, de sua autoria. Para entrar em contato com o autor, escreva para claudenir@bematech.com.br.

Claudenir Andrade

Claudenir Andrade - Formado pela Academia de Sistemas Informáticos de Madrid, trabalha com automação comercial há nove anos, foi responsável pela Homologação e aprovação de ECFs brasileiros em países como Equador e Venezuela, gerencia a equipe de desenvolvimento da Daruma Automação. Autor do primeiro livro de automação comercial no Brasil - "Automação Comercial com VB.Net e C#", é também MVP da Microsoft e está criando e definindo o Modelo XML para Automação Comercial, escreve artigos também para o site MSDN e pode ser contatado pelo e-mail - claudenir@daruma.com.br