Páginas filhas
  • Integração com Salesforce - Arquitetura

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

  1. Visão Geral
  2. Arquitetura TOTVS
    1. TOTVS Connector Client
    2. TOTVS Connector Server
    3. TOTVS Agro Plataforma Agro
    4. TOTVS Agro Connecta Conecta Dados
    5. Monitoramento TOTVS Apps

01. VISÃO GERAL

Esta integração foi construída para efetuar o envio de dados entre TOTVS Agro Bioenergia para Salesforce, levando os cadastros de Fazenda (Nível 1), Setor (Nível 2) e Talhão (Nível 3) sempre que forem inseridos ou atualizados. Com esses dados é realizado a construção de contratos via Salesforce. Com isso, esse material foi construído para detalhes técnicos da integração.

...

Na imagem abaixo, podemos ver com detalhes o fluxo geral, desde quando os dados saí do TOTVS Agro Bioenergia até chegar para Salesforce. O fluxo é divido em 3 etapas que serão detalhadas de acordo com decorrer do material, essas etapas são:

    • 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, 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 utilizadasNas próximas seções, iremos exibir com detalhes qual é a função de cada produto citado acima.

2.1. TOTVS Agro Connector Client

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, 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 tebela 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, exibiremos em detalhes um exemplo de JSON que irá para fila do rabbit RabbitMQ mostrado acima.
      • Bloco de código
        themeConfluence
        {
           "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"
           }
        }

2.3. TOTVS Agro Plataforma

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 Connecta Conecta Dados.


    • Abaixo, exibiremos em detalhe um exemplo de JSON que irá para fila do rabbit mostrado acima.
      • Bloco de código
        themeConfluence
        {
           "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
           }
        }

2.4. TOTVS Agro Conecta Dados

    • 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:

...