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

Versões comparadas

Chave

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

...

Atualmente, o modelo de dados utiliza de 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:

...

UPNIVEL1

...

UPNIVEL2

...

UPNIVEL3
CD_UPNIVEL1CD_UPNIVEL1 + CD_UPNIVEL2CD_SAFRA + CD_UPNIVEL1 + CD_UPNIVEL2 + CD_UPNIVEL3
CD_UPNIVEL1CD_UPNIVEL1CD_SAFRA
CD_MUNICCD_UPNIVEL2CD_UPNIVEL1
CD_FORNECCD_MUNICCD_UPNIVEL2
DE_UPNIVEL1DE_UPNIVEL2CD_UPNIVEL3
DE_ENDERECOQT_AREA_TOTCD_TP_PROPR
NO_TELEFONEQT_AREA_PRODDS_TERRA
NO_CGC_CPF
DS_ASFALTO
NO_INCRA
DS_HIDROVIA
NO_INSC_PROD
CD_SIST_COLH
NO_CEP
DT_PLANTIO
FG_TP_PESS
CD_OCUP
QT_AREA_TOT
CD_VARIED
QT_AREA_PROD
CD_ESTAGIO
CD_INT_ERP
CD_ESPACAM
INSTANCIA
CD_SIST_PLAN
FG_ATIVO
QT_AREA_PROD


CD_OCUP_ANT


FG_TP_PLANTIO


Após o cadastro, vincula-se a base de

...

Após o cadastro, vincula-se 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.

...

    • Modelo à ser enviado: FAZENDA (Local de Produção 1) para Salesforce.

      APITipoDescrição
      IdConta__cTextoID Fazenda
      CodigodaPropriedade__cTexto(6) (ID Externo)Código Fazenda
      Municipio__r.codigoMunicipio__cPesquisaCódigo Município Código Município 
      codigoFornecedor__cNumero(8)Código Fornecedor
      descricaoCompleta__cTexto(70)Descrição Completa
      BillingStreetTexto(70)Endereço
      PhoneTexto(70)Telefone
      cnpjCPF__cTexto(18)CNPJ ou CPF
      numeroIncracodigoFornecedor__cNumeroTexto(815)Código FornecedorN° INCRA
      descricaoCompletanumeroInscricaoProdutorRural__cTexto(7020)Descrição CompletaN° Insc.Produtor Rural
      Cep__cBillingStreetTexto(7016)EndereçoN° CEP
      Tipo_de_Pessoa__cPhoneTexto(701)Telefone
      cnpjCPFQtdeAreaTotalHA__cTextoNumero(187,2)CNPJ ou CPF
      numeroIncraQtdeAreaTotalProdHectares__cTextoNumero(157,2)
      N° INCRAnumeroInscricaoProdutorRuralcodigoInternoErp__cTexto(2015)N° Insc.Produtor Rural
      CepInstancia__r.CodigoInstanciaPIMS__cTexto(165)N° CEP
      Tipo_de_PessoaflagAtivo__cTexto(1)Lista de Opçoes


    • Modelo à ser enviado: SETOR (Local de Produção 2) para Salesforce.

      APITipoDescrição
      IdBlocoQtdeAreaTotalHA__cNumero(7,2)Texto(6) (ID Externo)Id Bloco
      Conta__r.IdContaQtdeAreaTotalProdHectares__cNumeroPesquisa(7,2Conta)Código Fazenda
      codigoBlococodigoInternoErp__cTexto(6) (15ID Externo)Código Bloco
      InstanciaMunicipio__r.CodigoInstanciaPIMS.codigoMunicipio__cPesquisaCódigo Município PIMS
      NameNameDescrição do Bloco
      Hectares__cTextoNumero(5)16,2)Quantidade de Área Total em Hectares
      AreaProdutivaHAflagAtivo__cNumero(16,2)Quantidade de Área Produtiva em HectaresLista de Opçoes


    • Modelo à ser enviado: SETOR TALHÃO (Local de Produção 23) para Salesforce.

      APITipoDescriçãoDescrição
      IdTalhao__cTextoID Talhão
      Safra__cNumero(5)Código da Safra
      Conta__r.IdContaIdBloco__cTexto(6) (ID Externo)Id BlocoCódigo Fazenda
      BlocoConta__r.IdContaIdBloco__cPesquisa(Conta)Código FazendaBloco
      codigoBlococodigoTalhao__c (ID Externo)Texto(6) (ID Externo)Código BlocoTalhão
      CodigoTipoPropriedadeMunicipio__r.codigoMunicipio__cPesquisaLista de OpçõesCódigo Município PIMS
      NameNameDescrição do Bloco
      Tipo de Propriedade
      DistanciaTerra__cNumero(4,1)Distância Terra
      DistanciaAsfaltoHectares__cNumero(164,21)Quantidade de Área Total em HectaresDistância Asfalto
      DistanciaHidroviaAreaProdutivaHA__cNumero(164,2)Quantidade de Área Produtiva em Hectares

      Modelo à ser enviado: TALHÃO (Local de Produção 3) para Salesforce.

      1)Distância Hidrovia
      CodigoSistemaColheita__cLista de OpçõesCódigo de Sistema de Colheita
      DataPlantio__cDateData do Plantio
      CodigoOcupacao__cLista de OpçõesCódigo de Ocupação
      CodigoVariedade__cLista de OpçõesCódigo de Variedade
      CodigoEstagio__cLista de OpçõesCódigo de Estagio
      CodigoEspacamento__cLista de OpçõesCódigo de Espaçamento
      CodigoSistemaPlantio__cLista de OpçõesCódigo de Sistema de Plantio
      AreaProdutivaHA__cNumero(7,2)Quantidade de Área Produtiva em Hectares
      CodigoOcupacaoAnterior__cLista de OpçõesCódigo de Sistema de Plantio Anterior
      FlagTipoPlantio
      APITipoDescrição
      IdTalhao__cTextoID Talhão
      Safra__cNumero(5)Código da Safra
      Conta__r.IdConta__cTexto(6)Código Fazenda
      Bloco__r.IdBloco__cPesquisaCódigo Bloco
      codigoTalhao__c (ID Externo)Texto(6)Código Talhão
      CodigoTipoPropriedade__cLista de OpçõesCódigo Flag de Tipo de Propriedade
      DistanciaTerra__cNumero(4,1)Distância Terra
      DistanciaAsfalto__cNumero(4,1)Distância Asfalto
      DistanciaHidrovia__cNumero(4,1)Distância Hidrovia
      CodigoSistemaColheita__cLista de OpçõesCódigo de Sistema de Colheita
      DataPlantio__cDateData do Plantio
      CodigoOcupacao__cLista de OpçõesCódigo de Ocupação
      CodigoVariedade__cLista de OpçõesCódigo de Variedade
      CodigoEstagio__cLista de OpçõesCódigo de Estagio
      CodigoEspacamento__cLista de OpçõesCódigo de Espaçamento
      CodigoSistemaPlantio__cLista de OpçõesCódigo de Sistema de Plantio
      AreaProdutivaHA__cNumero(7,2)Quantidade de Área Produtiva em Hectares
      CodigoOcupacaoAnterior__cLista de OpçõesCódigo de Sistema de Plantio Anterior
      FlagTipoPlantio__cLista de OpçõesFlag de Tipo de Plantio
    • Exemplo de requisição Postman: PATCH - Fazenda

Image Removed

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

Image Removed

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

...

    • Plantio


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

Image Added


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

Image Added


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

Image Added

2.5.Monitoramento TOTVS Apps


    • TOTVS Agro Bioenergia (via TOTVS Agro Connector Client - TCC_EVENT)
      • Dentro da base de dados do TOTVS Agro Bioenergia é gerado uma tabela pelo TOTVS Agro Conector Client que é possível verificar os últimos eventos capturados pela Trigger
      • Tabela: TCC_EVENT
      • Image Added
  •  
    • TOTVS Agro Connector Client
      • Dentro da base TOTVS Agro Connector Client é possível verificar se as mensagens estão sendo processadas e verificar o JSON.
      • Tabela: OUTCOMING_DATA
      • Image Added
  •  
    • TOTVS Agro Connector Server
      • Dentro da base do TOTVS Agro Connector Server, localizado dentro do TOTVS Apps (Acesso Restrito) é possível verificar os logs.
      • Tabela LOG
      • Image Added
  •  
    • TOTVS Agro Plataforma
      • Nos ambientes do TOTVS Apps (Acesso Restrito) é possível verificar os logs de rastreabilidade, ou seja, verificar se as integridades estão de acordo e se o fluxo pode seguir.
      • Ferramenta: LENS
      • Image Added
    •  
    • TOTVS Agro Conecta Dados
      • Nos ambientes do TOTVS Apps (Acesso Restrito) é possível verificar os logs de rastreabilidade, ou seja, verificar os dados foram efetivados e a resposta da API com Salesforce.
      • Ferramenta: LENS
      • Image Added


...

03. Fluxo de Dados/APIs

1. Trigger
    1.1.
Trigger monitora cada novo evento na tabela
    1.2.
Para os eventos gerados a trigger insere o registro na tabela TCC_EVENT, com os dados que foram gerados no schema definition e status unprocessed
    
2. TOTVS Agro Connector Client
    2.1.
monitora a tabelaTCC_EVENT, por meio da classe EventScheduler.java
    2.2.
Após receber os dados é feito uma verificação e uma atualização na tabela TCC_EVENT, alterando o status para processed por meio da classe RowDataService.java
    2.3.
Com os dados validados, é processado para tabela OUTCOMING_DATA e enviado para o TOTVS Agro Connector Server por meio da classe EventProcessor.java
    
3. TOTVS Agro Connector Server
    3.1.
A lista de eventos recebidas pelo TOTVS Agro Connector Client é enviado na tabela própria do produto chamada CLIENT_DATA que pode ser encontrado por meio da classe CriateClientDataService.java
    3.2. ClientDataScheduler.java
é responsável por processar o JSON recebido para a fila do RabbitMQ no TOTVS Agro Plataforma.
    
4. TOTVS Agro Plataforma
    4.1.
Nesse momento o JSON é classificado de acordo com schema definition e inserido coluna por coluna nas tabelas com suas integridades na base de dados do TOTVS Agro Plataforma
        4.1.1.
Se for uma fazenda (Nível 1) (FazendaTCServerListener.java), é inserido e registrado ou atualizado na tabela FAZENDA, por meio da classe FazendaTCServerProcessor.java
        4.1.2.
Se for um setor (Nível 2) (SetorTCServerListener.java), é inserido e registrado ou atualizado na tabela SETOR, por meio da classe SetorTCServerProcessor.java
        4.1.3.
Se for um talhão (Nível 3) (TalhaoTCServerListener.java), é inserido e registrado ou atualizado na tabela TALHAO_LOGICO, por meio da classe TalhaoTCServerProcessor.java
    4.2.
Após as inserções e validações a mensagem (JSON) é novamente inserido em outra fila do Rabbit RabbitMQ para enviar para o TOTVS Agro Conecta Dados por meio da classe EntidadePlataformaPublisher.java
    
5. TOTVS Agro Conecta Dados
    5.1.
Em uma fila única, a mensagem recebida é verificada o tipo do connector conector e a mesma é processada na classe AcaoConectorEntidade.java
    5.2. Token
        5.2.1
O token é recuperado por meio do preenchimento no front e inserido nas tabelas do TOTVS Agro Conecta Dados, a autenticação e atualização de token pode ser acompanhado na classe: é consistido por meio da classe AtualizarTokenSalesforceService.java
    5.3. Fazenda
        5.3.1.
SalesforceEnvioFazendaProcessor.java é a classe responsavél responsável por ler a mensagem, criar e tratar o JSON com a estrutura da Salesforce
        5.3.2. SalesforceFazendaHttpClient.java
realiza a autenticação e realiza o envio se comunicando com a API Salesforce.
    5.4. Setor
        5.4.1. SalesforceEnvioSetorProcessor.java
é a classe responsavél responsável por ler a mensagem, criar e tratar o JSON com a estrutura da Salesforce
        5.4.2. SalesforceSetorHttpClient.java
realiza a autenticação e realiza o envio se comunicando com a API Salesforce.
    5.5. Talhão
        5.5.1. SalesforceEnvioTalhaoProcessor.java
é a classe responsavél responsável por ler a mensagem, criar e tratar o JSON com a estrutura da Salesforce
        5.5.2. SalesforceTalhaoHttpClient.java
realiza a autenticação e realiza o envio se comunicando com a API Salesforce.

...