Histórico da Página
...
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_UPNIVEL1 | CD_UPNIVEL1 + CD_UPNIVEL2 | CD_SAFRA + CD_UPNIVEL1 + CD_UPNIVEL2 + CD_UPNIVEL3 |
CD_UPNIVEL1 | CD_UPNIVEL1 | CD_SAFRA |
CD_MUNIC | CD_UPNIVEL2 | CD_UPNIVEL1 |
CD_FORNEC | CD_MUNIC | CD_UPNIVEL2 |
DE_UPNIVEL1 | DE_UPNIVEL2 | CD_UPNIVEL3 |
DE_ENDERECO | QT_AREA_TOT | CD_TP_PROPR |
NO_TELEFONE | QT_AREA_PROD | DS_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.
...
- Exemplo detalhado de JSON que irá para fila do RabbitMQ (mencionado 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 } }
- Exemplo detalhado de JSON que irá para fila do RabbitMQ (mencionado acima):
2.4. TOTVS Agro Conecta Dados
- O TOTVS Agro Conecta Dados (Front/Web) é 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/Web, com isso ele monta o JSON baseado no modelo enviado e processam-se as requisições PATCH para Salesforce, conforme exemplos demonstrados:
Aviso | ||
---|---|---|
| ||
Para realizar as requisições é necessário passar o token recuperado, após autenticação. |
Destacam-se as tabelas disponibilizadas para nós com base na API deles, ou seja, o JSON que será inserido no body da requisição e exemplos de collections: Patch(Insert-Update)-Exemplos.postman_collection.json que pode ser importado no Postman para realizar os testes, basta inserir os dados necessários que são destacados em vermelhos na requisição após a importação.
"qtdAreaProdutiva":"24", "cdIntErp":null } }
2.4. TOTVS Agro Conecta Dados
- O TOTVS Agro Conecta Dados (Front/Web) é 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/Web, com isso ele monta o JSON baseado no modelo enviado e processam-se as requisições PATCH para Salesforce, conforme exemplos demonstrados:
Aviso | ||
---|---|---|
| ||
Para realizar as requisições é necessário passar o token recuperado, após autenticação. |
Destacam-se as tabelas disponibilizadas para nós com base na API deles, ou seja, o JSON que será inserido no body da requisição e exemplos de collections: Patch(Insert-Update)-Exemplos.postman_collection.json que pode ser importado no Postman para realizar os testes, basta inserir os dados necessários que são destacados em vermelhos na requisição após a importação.
Modelo à ser enviado: FAZENDA (Local de Produção 1) para Salesforce.
API Tipo Descrição IdConta__c Texto ID Fazenda CodigodaPropriedade__c Texto(6) (ID Externo) Código Fazenda Municipio__r.codigoMunicipio__c Pesquisa Código Município codigoFornecedor__c Numero(8) Código Fornecedor descricaoCompleta__c Texto(70) Descrição Completa BillingStreet Texto(70) Endereço Phone Texto(70) Telefone cnpjCPF__c Texto(18) CNPJ ou CPF numeroIncra__c Texto(15) N° INCRA numeroInscricaoProdutorRural__c Texto(20) N° Insc.Produtor Rural Cep__c Texto(16) N° CEP Tipo_de_Pessoa__c Texto(1) QtdeAreaTotalHA__c Numero(7,2) QtdeAreaTotalProdHectares__c Numero(7,2) codigoInternoErp__c Texto(15) Instancia__r.CodigoInstanciaPIMS__c Texto(5) flagAtivo__c Lista de Opçoes
Modelo à ser enviado: SETOR (Local de Produção 2) para Salesforce.
API Tipo Descrição IdBloco__c Texto(6) (ID Externo) Id Bloco Conta__r.IdConta__c Pesquisa(Conta) Código Fazenda codigoBloco__c Texto(6) (ID Externo) Código Bloco Municipio__r.codigoMunicipio__c Pesquisa Código Município PIMS Name Name Descrição do Bloco Hectares__c Numero(16,2) Quantidade de Área Total em Hectares AreaProdutivaHA__c Numero(16,2) Quantidade de Área Produtiva em Hectares
Modelo à ser enviado: TALHÃO (Local de Produção 3
Modelo à ser enviado: FAZENDA (Local de Produção 1) para Salesforce.
API Tipo Descrição IdConta__c Texto ID Fazenda CodigodaPropriedade__c Texto(6) (ID Externo) Código Fazenda Municipio__r.codigoMunicipio__c Pesquisa Código Município codigoFornecedor__c Numero(8) Código Fornecedor descricaoCompleta__c Texto(70) Descrição Completa BillingStreet Texto(70) Endereço Phone Texto(70) Telefone cnpjCPF__c Texto(18) CNPJ ou CPF numeroIncra__c Texto(15) N° INCRA numeroInscricaoProdutorRural__c Texto(20) N° Insc.Produtor Rural Cep__c Texto(16) N° CEP Tipo_de_Pessoa__c Texto(1) QtdeAreaTotalHA__c Numero(7,2) QtdeAreaTotalProdHectares__c Numero(7,2) codigoInternoErp__c Texto(15) Instancia__r.CodigoInstanciaPIMS__c Texto(5) flagAtivo__c Lista de Opçoes Modelo à ser enviado: SETOR (Local de Produção 2) para Salesforce.
API Tipo Descrição IdBlocoIdTalhao__c Texto(6) (ID Externo) Id Bloco Conta__r.IdConta__c Pesquisa(Conta) Código Fazenda ID Talhão Safra__c Numero(5) Código da Safra Conta__r.IdContacodigoBloco__c Texto(6) (ID Externo) Código Fazenda BlocoMunicipio__r.codigoMunicipioIdBloco__c Pesquisa Código Município PIMS Name Name Descrição do Bloco HectarescodigoTalhao__c (ID Externo) NumeroTexto(16,26) Quantidade de Área Total em Hectares Código Talhão CodigoTipoPropriedadeAreaProdutivaHA__c Numero(16,2) Quantidade de Área Produtiva em Hectares Modelo à ser enviado: TALHÃO (Local de Produção 3) para Salesforce.
Lista de Opções Código Tipo de Propriedade DistanciaTerra__c Numero(4,1) Distância Terra DistanciaAsfalto__c Numero(4,1) Distância Asfalto DistanciaHidrovia API Tipo Descrição IdTalhao__c Texto ID Talhão Safra__c Numero(54,1) Código da Safra Distância Hidrovia CodigoSistemaColheitaConta__r.IdConta__c Texto(6)Lista de Opções Código Fazendade Sistema de Colheita DataPlantio__c Date Data do Plantio CodigoOcupacaoBloco__r.IdBloco__c PesquisaLista de Opções Código Blocode Ocupação codigoTalhaoCodigoVariedade__c (ID Externo) Texto(6) Código Talhão Lista de Opções Código de Variedade CodigoEstagioCodigoTipoPropriedade__c Lista de Opções Código Tipo de PropriedadeEstagio DistanciaTerraCodigoEspacamento__c Numero(4,1) Distância Terra Lista de Opções Código de Espaçamento CodigoSistemaPlantioDistanciaAsfalto__c Lista de Opções Código de Sistema de Plantio AreaProdutivaHA Numero(4,1) Distância Asfalto DistanciaHidrovia__c Numero(47,12) Distância Hidrovia Quantidade de Área Produtiva em Hectares CodigoOcupacaoAnteriorCodigoSistemaColheita__c Lista de Opções Código de Sistema de ColheitaPlantio Anterior DataPlantio__c Date Data do Plantio CodigoOcupacao__c Lista de Opções Código de Ocupação CodigoVariedade__c Lista de Opções Código de Variedade CodigoEstagio__c Lista de Opções Código de Estagio CodigoEspacamento__c Lista de Opções Código de Espaçamento CodigoSistemaPlantio__c Lista de Opções Código de Sistema de Plantio AreaProdutivaHA__c Numero(7,2) Quantidade de Área Produtiva em Hectares CodigoOcupacaoAnterior__c Lista de Opções Código de Sistema de Plantio Anterior FlagTipoPlantio__c Lista de Opções Flag de Tipo de Plantio
- Exemplo de requisição Postman: PATCH - Fazenda
Exemplo de requisição Postman: PATCH - Setor
- Exemplo de requisição Postman: PATCH - Talhão
...
FlagTipoPlantio__c Lista de Opções Flag de Tipo de Plantio
- Exemplo de requisição Postman: PATCH - Fazenda
Exemplo de requisição Postman: PATCH - Setor
- Exemplo de requisição Postman: PATCH - Talhão
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
- TOTVS Agro Bioenergia (via TOTVS Agro Connector Client - TCC_EVENT)
-
- 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
- TOTVS Agro Connector Client
-
- 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
- TOTVS Agro Connector Server
-
- 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
- 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
- TOTVS Agro Plataforma
...
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
...
ou atualizado na tabela FAZENDA, por meio da classe FazendaTCServerProcessor.java
4.1.2. Se for um setor (Nível 2) (SetorTCServerListener.java), é inserido
...
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
...
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
...
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
...
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
...
é consistido por meio da classe AtualizarTokenSalesforceService.java
5.3.
...
Fazenda
5.3.1. SalesforceEnvioFazendaProcessor.java é a classe
...
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
...
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
...
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.