-
Notifications
You must be signed in to change notification settings - Fork 1
1. Primeiros passos com o SDK
O SDK de integração da Máxima Tech nasceu com o objetivo de fornecer aos clientes uma maneira simples e eficiente para se manterem integrados à Máxima. Com o uso do SDK o cliente consegue:
- Obter atualizações de dados em tempo real, seja do seu sistema ERP integrado para a Máxima, quanto da Máxima para seu ERP;
- Garantir a consistência dos dados que são sincronizados, graças as validações realizadas internamente;
- Criar uma estrutura para o controle dos dados já sincronizados;
- Criar uma estrutura para o gerenciamento da integração.
O SDK funciona como um middleware para a integração, e se integra com os demais componentes necessários para este processo da seguinte forma:

O SDK é implementado utilizando uma biblioteca de classes com .NET 6.0, portanto para a implementação dos demais componentes serão necessários os seguintes recursos:
- .NET ≥ 6
- Entity Framework Core (Para armazenamento persistente, usaremos como exemplo um banco Postgres)
- Biblioteca Hangfire (Para criação, gerenciamento e monitoramento da execução de jobs recorrentes)
- Biblioteca Automapper (Para conversão (“de/para”) das entidade Máxima para o sistema integrado e vice-versa)
No SDK existem implementações para as entidades utilizadas pelo sistema da Máxima, você pode integrar cada um destes conceitos fazendo um “de/para” das nossas entidades para as entidades definidas pelo sistema que deseja integrar. Com base nisso, o processo de envio e recebimento de dados poderá ser feito a partir da Classe MaximaIntegracao, que encapsula o processo de Login e conexão em nossas API. Exemplo:
ResponseApiMaxima<ProdutoMaxima> retornoApiMaxima = await apiMaxima.IncluirProdutos(listaIncluir);Este é o componente responsável pela definição das entidades e serviços do lado do sistema a ser integrado com a Máxima. Aqui você irá definir o que será integrado e como será feita a conexão com o seu sistema, bem como, definir os agendamentos para a execução da sincronização dos conceitos integrados.
Recomendamos que você implemente este componente utilizando uma aplicação Asp.Net MVC, para usufruir de alguns recursos da biblioteca Hangfire para controle e gerenciamento das jobs e também para que consiga implementar uma forma intuitiva para configurar algumas parametrizações da integração. Mas caso prefira, e saiba o que está fazendo, este componente pode ser implementado utilizando outras abordagens como um aplicativo de console por exemplo.
O banco de dados de controle é responsável por armazenar os dados que já foram enviados do ERP a ser integrado para a Máxima e para essa persistência usamos o Postgres.
Nele criamos as seguintes tabelas:
- Parametros: Armazena as etapas de configuração do ERP.
- JobsModels: Armazena as jobs necessárias e frequência de execução para alimentar o banco da Máxima com os dados do ERP.
- ControleDadosModels: Armazena os nomes das tabelas do integrador Web, suas chaves de identificação e valor. O valor pode ser armazenado em um Hash, onde é através dele que identificamos se o registro houve alteração ou não para editá-lo no Sistema da Máxima.
O fluxo acontece da seguinte forma, ficando na responsabilidade do Integrador Web validar se os dados do ERP já foram enviados para a Máxima:
- Primeiro busca uma lista com os registro da tabela ControleDadosModels de uma tabela específica;
- Depois busca uma lista com os registros da mesma tabela no Integrador Web;
- Com as duas listagens preenchidas, é feito uma comparação se o campo Valor da tabela ControleDadosModels está diferente do Hash criado da tabela do Integrador Web, com essa comparação, podemos identificar o que será necessário alterar, incluir ou excluir.
- Após essa identificação, é realizado uma requisição para api da Máxima atualizando os dados referente ao sistema do Integrador Web.
O SDK permite a sincronização de pedidos e clientes em tempo real com base no middleware de mensageria Pub/Sub. Para utilizar este recurso você deve entrar em contato com a Máxima solicitando as credenciais para escuta da fila por meio da qual seu sistema integrado receberá as notificações. Da mesma forma, você também pode utilizar um Webhook em seu sistema para chamar nossa API de Integração sempre que uma determinada ação acontecer, nossa API enviará a notificação para a respectiva fila no Pub/Sub que é escutada por nossos sistemas.