Histórico da Página
...
- On-Premise, ambiente do cliente, onde é instalado o TOTVS Agro Connector Client.;
- TOTVS Apps, ambiente Web TOTVS que está localizado o TOTVS Agro Connector Server, TOTVS Agro Plataforma e TOTVS Agro Conecta Dados.;
- Terceiros, API fornecida pela Salesforce para realizarmos os envios dos dados.;
Resumidamente a integração segue o fluxo abaixo.
- TOTVS Agro Connector Client é instalado no cliente e cadastrado a base e vinculado com schema definition Schema Definition, logo após é criado uma trigger que fica monitorando quando é inserido ou atualizado um novo registro e para cada novos dados é enviado via JSON por API para o TOTVS Connector Server.;
- O TOTVS Agro Connector Server é responsável por receber esses dados e processar em uma fila de mensageria via RabbitMQ, tal fila que TOTVS Agro Plataforma irá receber.;
- O TOTVS Agro Plataforma irá fazer as validações dos dados recebidos na fila e inserir no banco do próprio, garantindo-se a integridade dos dados. Com os dados validado será processado para uma nova fila no RabbitMQ que o TOTVS Agro Conecta Dados irá receber.;
- O TOTVS Agro Conecta Dados irá receber essa mensagem com JSON, que será adaptada ao modelo repassado pela Salesforce, portanto, após a autenticação com os dados informado na interface web do TOTVS Agro Conecta Dados, fazemos uma requisição PATCH passando os novos dados tratados.;
- Após a requisição PATCH é possível verificar nos logs do TOTVS Agro Conecta Dados se a mensagem foi recebida com sucesso pela Salesforce.;
Após a explicação resumida acima, nas próximas seções iremos detalhas o papel de cada produto e suas funções a serem utilizadas.
...
O TOTVS Agro Connector Client é um aplicação On-premises, que é instalado localmente no ambiente do cliente com um TENTANT_ID que é disponibilizado pela equipe do TOTVS Agro e atualmente possui uma interface do Swagger e a sua própria base de dados, conforme a imagem abaixo.
No Swagger, cadastramos a base de dados do produto, no caso TOTVS Agro Bioenergia.
Hoje, trabalhamos com schemas definitions Schemas Definitions, que é o mapeamento de tabelas e colunas que serão enviadas para parceira, conforme solicitação, a equipe TOTVS Agro realiza esse cadastro e será enviado os seguintes dados:
...
Após o cadastro, vinculamos a base de dados com o Schema Definition (LocalProducao1, LocalProducao2 e LocalProducao3), esses Schemas Definitions (dados que serão enviados), após efetuar esse vínculo é criado uma trigger que monitora cada insert/update que foi cadastrado conforme a tabela acima. Quando é realizado algum INSERT ou UPDATE esse dado é processado através de tabelas do TOTVS Agro Connector Client e enviado por API como JSON para o TOTVS Agro Connector Server. Em caso de perda de conexão (serviço desligado) o registro fica em uma tabela criada chamada TCC_EVENT com status de UNPROCESSED, assim que serviço é ligado novamente o dado é processado e enviado, isso para garantir que não haja perca de dados.
2.2. TOTVS Agro Connector Server
O TOTVS Agro Connector Server é uma aplicação que fica nos ambientes TOTVS Apps e é utilizado pela equipe TOTVS Agro para realizar os cadastros dos clientes, gerando o TENANT_ID (para os clientes conseguirem realizar instalação do TOTVS Agro Connector Client) e os cadastros dos Schemas Definitions que foram citados Anteriormente.
Ele também é responsável por receber os dados que o TOTVS Agro Connector Client envia, com esse JSON recebido, ele é enviado para uma fila de mensageria da TOTVS por meio do RabbitMQ para o TOTVS Agro Plataforma.
- Abaixo, são exibidos os detalhes de um exemplo de JSON que é enviado à do RabbitMQ (mencionado acima).
Bloco de código theme Confluence { "header":{ "type":"LocalProducao1", "generatedOn":"2023-03-02T12:45:19.000688Z", "locale":"pt_BR" }, "content":{ "originApp":"PIMSCS", "appVersion":"12.1.2301", "schemaName":"LocalProducao1", "schemaVersion":"12.1.2301", "action":"INSERT", "data":{ "id":{ "id":"TESTE" }, "nome":"TESTE1", "codigo":"TESTE", "originId":"Q0RfVVBOSVZFTDE9VEVTVEU=" }, "createdAt":"2023-03-02T12:45:19.303637Z", "token":"8c12da2baca8de2e6b5dd2f6999c6998cbc7b563e5c24e043fa26b72f1f406e8" } }
- Abaixo, são exibidos os detalhes de um exemplo de JSON que é enviado à do RabbitMQ (mencionado acima).
...
O TOTVS Agro Plataforma está disponível nos ambientes do TOTVS Apps, porém ele não possuí uma interface gráfica. Ele é responsável por receber as mensagens do TOTVS Connector Server que foi processado na fila do RabbitMQ, então ele pega o JSON recebido, insere os dados na própria base de dados para haver controles de chaves primárias, foreign key e garantir a integridade das tabelas e relacionamentos. Após conclusão de inserção com sucesso, novamente esse JSON é enviado para outra fila via RabbitMQ, que será processado pelo TOTVS Agro Conecta Dados.
- Abaixo, exibiremos em detalhe um exemplo de JSON que irá para fila do rabbit mostrado acima.
Bloco de código theme Confluence { "header":{ "type":"FazendaCriada", "tenantId":"8c12da2baca8de2e6b5dd2f6999c6998cbc7b563e5c24e043fa26b72f1f406e8", "generatedOn":"2023-03-22T14:12:21.428785Z", "locale":"pt_BR" }, "content":{ "originId":"Q0RfVVBOSVZFTDE9NjAwODZB", "metadata":{ }, "codigo":"FazendaA1", "descricao":"Fazenda Teste", "documento":null, "instanciaOriginId":null, "cdMunicipio":"2308", "cdFornecedores":"94500", "endereco":"Fazenda Teste", "telefone":null, "cnpjCpf":"12345678", "incra":null, "inscricaoProdutorRural":"123.456.789-10", "cep":"111111", "tipoPessoa":"J", "qtdAreaTotal":"24", "qtdAreaProdutiva":"24", "cdIntErp":null } }
- Abaixo, exibiremos em detalhe um exemplo de JSON que irá para fila do rabbit mostrado acima.
...
- O TOTVS Agro Conecta Dados Front é responsável por cadastrar as informações disponibilizadas pela Salesforce e também ativar ou desabilitar integrações, tais elas como:
- O TOTVS Agro Conecta Dados Server é responsável por receber o JSON via mensageria, então ele fica observando a fila que o TOTVS Agro Plataforma enviou os dados. Com o JSON disponível o TOTVS Agro Conecta Dados fica responsável por realizar a autenticação a partir dos dados informados no front, com isso ele monta o JSON baseado no modelo enviado e processamos a requisições PATCH para Salesforce, conforme alguns exemplos abaixo:
...
- Exemplo de requisição Postman: PATCH - Fazenda
Exemplo de requisição Postman: PATCH - Setor
- Exemplo de requisição Postman: PATCH - Talhão