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
Nome | Tipo | Descrição | Default | Obrigatório | Referência |
---|
lRefreshToken | Logical | Indica se o setup no smartlink vai realizar o refresh do token | .F. |
|
|
Sintaxe: FwTotvsLinkClient():New()→ Nil ou FwTotvsLinkClient():New(.T.)→ Nil
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
Parâmetros
Nome | Tipo | Descrição | Default | Obrigatório | Referência |
---|
cType | Caractere | Tipo da mensagem |
| X |
|
cMessage | Caractere | Corpo da requisição |
| X |
|
Sintaxe: FwTotvsLinkClient():Send(< cType >, < cMessage >)-> lSuccess
SendAudience
Envia uma mensagem para a fila do Smart Link usando audience
Parâmetros
Nome | Tipo | Descrição | Default | Obrigatório | Referência |
---|
cType | Caractere | Tipo da mensagem |
| X |
|
cAudience | Caractere | Audiência da mensagem |
| X |
|
cMessage | Caractere | Corpo 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.
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
Nome | Tipo | Descrição | Default | Obrigatório | Referência |
---|
lRefreshToken | Logical | Indica se as operações vão realizar o refresh do token |
| X |
|
Sintaxe: FwTotvsLinkClient():SetRefreshToken(.T.)
GetRefreshToken
Retorna se as operações realizadas no smartlink estão realizando um refresh do token.
Sintaxe: FwTotvsLinkClient():GetRefreshToken()-> .T. ou .F.
#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
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: