software‎ > ‎tecnologia‎ > ‎

Estratégia de integração de qualquer sistema com o Bematech ERP (REST)

Estratégia de integração de qualquer sistema com o Bematech ERP (REST)

O Bematech ERP é um fornecedor de APIs REST em modo PASSIVO (só aceita chamadas REST, não invocando nenhum serviço de integração diretamente).

Todos os sistemas que desejem se integrar ao Bematech ERP devem obedecer a este fluxo. Não há alternativas através de tabelas compartilhadas em bancos de dados; compartilhamento de arquivos em diretórios de sistemas operacionais ou via FTP's, etc.

Se algum sistema precisar aguardar alguma mudança de status no Bematech ERP para realizar alguma ação, o mesmo deve invocar uma das APIs e verificar seu retorno de tempos em tempos, até saber que deve realizar alguma ação, e depois invocar novamente APIs para representar esta nova ação ao Bematech ERP.

O Bematech ERP não busca informações em outras bases, pois é considerado o "detentor da VERDADE sobre as informações que possui em seu modelo de dados" (Fonte Única da Verdade), tampouco concilia informações entre sistemas. Logo, sistemas que se integrem com ele, devem se preocupar em manter os dados do Bematech ERP íntegros com possíveis representações em seus modelos de dados paralelos.

É responsabilidade do sistema que se integra ao Bematech ERP, garantir a perfeita sincronia de informações, para manter no Bematech ERP a condição de total integridade com "fatos" e "verdades" sobre a empresa cliente. Devendo tratar quaisquer erros que possam ocorrer pelo fato do Bematech ERP negar o registro de alguma operação, que fira alguma regra de negócios existente em seu modelo de dados.

O sistema que se integra ao Bematech ERP poderá invocar suas APIs de forma ONLINE, conforme necessita de cada informação ou precisa gravar novas informações de forma interativa. Este formato oferece máxima integridade, por não precisar realizar cópias de informações entre os sistemas, pois já assume que as informações vindas do Bematech ERP de forma ONLINE estão sempre atualizadas. Como ocorrem de forma síncrona com a realidade das operações sendo 'executadas' realmente naquele instante, caso exista alguma validação do Bematech ERP que inviabilize alguma gravação, a sequência de processos pode ser interrompida no sistema que está se integrando, solicitando ação imediata para sua correção, não permitindo que os sistemas possuam 'verdades' distintas um do outro.

Já sistemas que optem por realizar integrações ao Bematech ERP em formato BATCH, isto é, realizam cópias do modelo de dados para seus próprios formatos, e depois tentam gravar dados em bloco no Bematech ERP, depois que alguma ação concreta já foi gravada com sucesso em seu próprio modelo, correm sério risco de obter erros no momento da gravação, pois o tempo decorrido entre a 'carga' dos modelos de dados entre os sistemas pode ter deixado-os incongruentes, facilitando a existência de quebras de integridade, e dificultando a representação da 'Verdade' dentro do Bematech ERP, que é refém da qualidade dos processos de integração realizados pelo software que deseja se integrar ao mesmo.

O modelo de dados do Bematech ERP é bastante rico, e procura representar a realidade dos negócios com o máximo de riqueza que permita grande abstração de conceitos por parte de quem o utiliza. É importante então que profissionais responsáveis das empresas que queiram se integrar ao Bematech ERP procurem compreender o modelo de dados, que pode ser distinto para cada necessidade de integrador diferente. Por exemplo, um integrador de PDV pode necessitar de conceitos distintos de quem está integrando um WMS por exemplo.

Várias tabelas de parametrização do Bematech ERP são feitas com datas de validade (início/fim), e atribuem regras do escopo mais generalista ao mais específico através de complexos algorítmos de pesquisa combinatória. Para um sistema que queira se integrar de forma BATCH, simplesmente ler as tabelas de parametrização não lhe é suficiente, pois precisaria também conseguir replicar em sua solução os algorítmos de pesquisa de forma idêntica aos realizados pelo próprio Bematech ERP. Uma alternativa a esta estratégia é a de 'mimicar' o uso de objetos de gestão, buscado verificar o que o Bematech ERP traz de informação pertinente para cada combinação de parâmetros que se coloque, antes de invocar cálculos que intepretem as tabelas de parametrização e que tragam: preços, tributos, comissões, promoções, descontos, rentabilidades, condições de pagamento, contabilização, etc.

Para os sistemas que se integram de forma ONLINE, não há necessidade de 'mimicar' nenhuma operação, pois a princípio estão usando os próprios objetos de gestão para realizar efetivamente a operação, sabendo que em seu resultado obterão todos os cálculos e validações de acordo com as regras parametrizadas no Bematech ERP.

Sistemas que queiram realizar integração em formato BATCH, devem possuir seus próprios mecanismos de detecção de quais informações foram alteradas desde a última chamada em BATCH, visando sua própria otimização de algorítmos de atualizações de dados internos. Exemplo: detectar quais produtos foram alterados, deletados ou inseridos desde a última invocação de uma lista de informações cadastrais realizada anteriormente.

Ao tratar o Bematech ERP como detentor da "verdade" sobre o modelo de dados, um software que esteja se integrando ao mesmo, pode detectar a necessidade de estender o modelo de dados do Bematech ERP para conter mais propriedades ("campos"), além dos já existentes. Deve então observar com cautela se a informação que necessita, não estaria representada em algum outro local dentro do Bematech ERP: tabelas de parametrização, ou mesmo serem informações que dependam de algum contexto a ser "mimicado" (conforme mencionado anteriormente), antes de partir para a extensão do modelo através de campos customizados; mas caso precise criá-los, poderá usar o próprio Bematech ERP, para definir esta extensão de modelo.

Se o sistema que está precisando estender o modelo for um produto a ser comercializado de forma independente, a extensão do modelo pode fazer parte de uma licença/produto dentro do Bematech ERP específica do fornecedor do sistema a ser integrado, evitando a criação de campos customizados a cada novo cliente seu.