Páginas filhas
  • Integração Descida de Dados Smart Link

Versões comparadas

Chave

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

Para realizar a descida de dados do TotvsApps é recomendado utilizar a integração com o TotvsLink Smart Link para esse fim.

O ERP deve possuir um dos produtos do TotvsApps Instalado. 

  1. TotvsApps posta uma mensagem na fila do TotvsLink Smart Link com um tipo Específico.
  2. Deve estar compilado no ERP uma classe para leitura dessa mensagem.
  3. O Job FwTotvsLinkJob deve estar cadastrado no schedule para execução.
  4. Assim que a mensagem for recebida no Job ela será repassada para a Classe de Leitura, que fará o processamento da Mensagem

...

  1. Cliente possui o Totvs Antecipa instalado em seu sistema.
  2. TotvsAntecipa disponibiliza É disponibilizada uma mensagem do tipo Financeiro para executar um procedimento:

    Informações
    titleModelo 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/

    Bloco de código
    titlePadrã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": []
        }
    }
    Bloco de código
    titlePadrã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"
        }
    }
  3.  Deve existir uma classe no ERP FinanceiroMessageReader: 

    Bloco de código
    #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.
  4. O Job FwTotvsLinkJob é executado e repasse a mensagem recebida para a Classe FinanceiroMessageReader, que faz o processamento.
  5. 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.