Para realizar a descida de dados do TotvsApps é recomendado utilizar a integração com o Smart Link para esse fim.
Fluxo da Integração
O ERP deve possuir um dos produtos do TotvsApps Instalado.
- TotvsApps posta uma mensagem na fila do Smart Link com um tipo Específico.
- Deve estar compilado no ERP uma classe para leitura dessa mensagem.
- O Job FwTotvsLinkJob deve estar cadastrado no schedule para execução.
- Assim que a mensagem for recebida no Job ela será repassada para a Classe de Leitura, que fará o processamento da Mensagem
Exemplo:
- Cliente possui o Totvs Antecipa instalado em seu sistema.
É disponibilizada uma mensagem do tipo Financeiro para executar um procedimento:
Modelo base de mensagem para comunicação entre serviços
Temos 2 padrões de mensagens entre serviços dentro do contexto aplicativo/solução. Para mais informações acessar a RFC: https://arquitetura.totvs.io/architectural-records/RFCs/Corporativas/RFC000011/
Padrão Totvs{ "header": { "type": "Financeiro", "tenantId": "e21c8e75-9dfc-4169-a599-e233538d72a4", "erpTenant": { "protheus":"T1" }, "generatedOn": "2021-06-08T15:18:08.367574Z", "locale": "pt_BR" }, "content": { "requestID": "1bc180de-ef14-4b75-83ac-b73ed1fa7518", "identifiers": { "CPF": "40254898765" }, "roles": [] } }
Padrão CloudEvents{ "specversion": "1.0", "time": "2022-04-19T19:05:23.9308049Z", "correlationid": "f95a7e8c-6f27-48e9-a74e-f0439f9ab540", "tenantid": "e21c8e75-9dfc-4169-a599-e233538d72a4", "id": "abc3845f-2a76-4ab4-b8bd-8abbb495d2c4", "source": "recorrencia", "type": "Financeiro", "data": { "meu": "dado", "CPF": "40254898765" } }
Deve existir uma classe no ERP FinanceiroMessageReader:
#include "protheus.ch" /*/{Protheus.doc} FinanceiroMessageReader Exemplo de classe de processamento de mensagens @type class @author izac.ciszevski /*/ Class FinanceiroMessageReader from LongNameClass method New() method Read() EndClass /*/{Protheus.doc} FinanceiroMessageReader::New construtor @type method @author izac.ciszevski /*/ method New() Class FinanceiroMessageReader return self /*/{Protheus.doc} FinanceiroMessageReader::Read Responsável pela leitura e processamento da mensagem. @type method @author izac.ciszevski @param oLinkMessage, object, Instância de FwTotvsLinkMesage da mensagem @return logical, sucesso ou falha. Determina se deve ou não retirar a mensagem da fila. /*/ method Read( oLinkMessage ) Class FinanceiroMessageReader ConOut( oLinkMessage:RawMessage()) ConOut( oLinkMessage:Header():toJson()) ConOut( oLinkMessage:Content():toJson()) ConOut( oLinkMessage:Type()) ConOut( oLinkMessage:tenantId()) ConOut( oLinkMessage:requestID()) return .T.
- O Job FwTotvsLinkJob é executado e repasse a mensagem recebida para a Classe FinanceiroMessageReader, que faz o processamento.
- Caso a mensagem seja processada com sucesso ela será removida da fila de processamento. Caso contrário ela permanecerá na fila e haverá nova tentativa de execução.
Visão Geral
Import HTML Content
Conteúdo das Ferramentas
Tarefas