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.

...

  1. Cliente possui o Totvs Antecipa instalado em seu sistema.
  2. É 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/

    A implementação do padrão CloudEvents estará disponível a partir da versão 2.3.1 do Smart Link.

    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.