Páginas filhas
  • FwTotvsLinkClient

Disponível a partir do LIB Label 20211004.

Utilização da classe

É necessário ter as credenciais (ClientId e Secret) do TotvsApps já cadastradas para utilizar a classe. Certifique-se de ter configurado algum produto do TotvsApps.

Mais informações sobre a implementação de Wizard de produtos TotvsApps pode ser encontrado na documentação: FWCarolWizard.

Objetivos

Classe criada para realização da comunicação com o Smart Link.

Smart Link é um mecanismo de troca de mensagens entre aplicações que utiliza um serviço de fila (rabbit) recebendo requisições através do protocolo HTTP. Mais informações na documentação: Smart Link

Métodos

New

Construtor que realiza o setup da fila

Parâmetros

NomeTipoDescriçãoDefaultObrigatórioReferência
lRefreshTokenLogicalIndica se o setup no smartlink vai realizar o refresh do token.F.

Sintaxe: FwTotvsLinkClient():New()→ Nil ou FwTotvsLinkClient():New(.T.)→ Nil

Importante

Parâmetro disponível a partir do pacote SmartLink 2.4.4.

Receive

Verifica se existem mensagens na fila do Smart Link

Sintaxe: FwTotvsLinkClient():Receive()-> lSuccess

GetMessage

Recupera a última mensagem carregada no objeto

Sintaxe: FwTotvsLinkClient():GetMessage()-> self:oMessage

Success

Notifica que a última mensagem recebida foi processada com sucesso

Sintaxe: FwTotvsLinkClient():Success()-> lSuccess

Fail

Notifica que a última mensagem recebida não foi processada com sucesso e envia a mensagem posicionada para a fila DLQ

Sintaxe: FwTotvsLinkClient():Fail()-> lSuccess

Send

Envia uma mensagem para a fila do Smart Link

Importante

O formato da mensagem a ser enviada é livre, porém geralmente é definida pelo Produto que receberá a mensagem.

Parâmetros

NomeTipoDescriçãoDefaultObrigatórioReferência
cTypeCaractereTipo da mensagem
X
cMessageCaractereCorpo da requisição
X

Sintaxe: FwTotvsLinkClient():Send(< cType >, < cMessage >)-> lSuccess

SendAudience

Envia uma mensagem para a fila do Smart Link usando audience

Importante

O formato da mensagem a ser enviada é livre, porém geralmente é definida pelo Produto que receberá a mensagem.

Parâmetros

NomeTipoDescriçãoDefaultObrigatórioReferência
cTypeCaractereTipo da mensagem
X
cAudienceCaractereAudiência da mensagem
X
cMessageCaractereCorpo da requisição
X

Sintaxe: FwTotvsLinkClient():SendAudience(< cType >,< cAudience >, < cMessage >)-> lSuccess

GetError

Retorna a mensagem de erro em uma falha de comunicação com o SmartLink.

Importante

Disponível a partir do pacote SmartLink 2.3.0 ou da lib label 20220321.

Sintaxe: FwTotvsLinkClient():GetError()-> cErro

SetRefreshToken

Realiza a indicação que as operações realizadas no smartlink irão realizar um refresh do token utilizado.

Parâmetros

NomeTipoDescriçãoDefaultObrigatórioReferência
lRefreshTokenLogicalIndica se as operações vão realizar o refresh do token
X

Sintaxe: FwTotvsLinkClient():SetRefreshToken(.T.)

Importante

Disponível a partir do pacote SmartLink 2.4.4.

GetRefreshToken

Retorna se as operações realizadas no smartlink estão realizando um refresh do token.

Sintaxe: FwTotvsLinkClient():GetRefreshToken()-> .T. ou .F.

Importante

Disponível a partir do pacote SmartLink 2.4.4.

Exemplo de uso - Send()
#include 'protheus.ch'

User Function SendMsgClient()
    Local oClient as object
    Local cMessage as character
    Local lSuccess as logical

    /*RpcSetEnv("99", "01") Necessário abrir o ambiente caso o mesmo não esteja aberto*/

    oClient := FwTotvsLinkClient():New()

	//O formato da mensagem a ser enviada é livre, porém geralmente é definida pelo Produto que receberá a mensagem.
    BeginContent Var cMessage
    {
        "header": {
            "type": "Framework",
            "tenantId": "e21c8e75-9dfc-4169-a599-e233538d72a4",
            "erpTenant": {
                    "protheus":"99"
            },
            "generatedOn": "2021-06-08T15:18:08.367574Z",
            "locale": "pt_BR"

        },
        "content": {
            "requestID": "1bc180de-ef14-4b75-83ac-b73ed1fa7518",
            "identifiers": {
                "CPF": "98954898765"
            },
            "roles": []
        }
    }
    EndContent

    lSuccess := oClient:Send("Teste Frame", cMessage)
    
Return lSuccess
Exemplo de uso - SendAudience()
User Function SendMsgSecond()
    Local oClient as object
    Local cMessage as character
    Local lSuccess as logical

    RpcSetEnv("99", "01")

    oClient := FwTotvsLinkClient():New()
	
	//O formato da mensagem a ser enviada é livre, porém geralmente é definida pelo Produto que receberá a mensagem.
    BeginContent Var cMessage
    {
        "header": {
            "type": "Framework",
            "tenantId": "e21c8e75-9dfc-4169-a599-e233538d72a4",
            "erpTenant": {
                    "protheus":"99"
            },
            "generatedOn": "2021-06-08T15:18:08.367574Z",
            "locale": "pt_BR"

        },
        "content": {
            "requestID": "1bc180de-ef14-4b75-83ac-b73ed1fa7518",
            "identifiers": {
                "CPF": "98954898765"
            },
            "roles": []
        }
    }
    EndContent

    lSuccess := oClient:SendAudience("Teste Frame", "FrameWork", cMessage)
    
Return lSuccess

Ambiente de teste

Para utilizar o ambiente de teste as credenciais devem ser de dev e é necessário ajustar o link do Registry.

Mais informações sobre o Registry na documentação:

Informações relacionadas:


  • Sem rótulos