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

Versões comparadas

Chave

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

...

    • 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.;


Image Modified


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.

Image Modified


No Swagger, cadastramos a base de dados do produto, no caso TOTVS Agro Bioenergia.
Image Modified


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.


Image Modified

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.


Image Modified


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.


Image Modified


    • Abaixo, são exibidos os detalhes de um exemplo de JSON que é enviado à do RabbitMQ (mencionado 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"
         }
      }

...

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.

Image Modified


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

...

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

Image Modified

Image Modified


    • 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

Image Modified


    • Exemplo de requisição Postman: PATCH - Setor

Image Modified


    • Exemplo de requisição Postman: PATCH - Talhão

Image Modified