Disponível a partir do LIB Label 20211004. |
É 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. |
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
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
Parâmetro disponível a partir do pacote SmartLink 2.4.4. |
Verifica se existem mensagens na fila do Smart Link
Sintaxe: FwTotvsLinkClient():Receive()-> lSuccess
Recupera a última mensagem carregada no objeto
Sintaxe: FwTotvsLinkClient():GetMessage()-> self:oMessage
Notifica que a última mensagem recebida foi processada com sucesso
Sintaxe: FwTotvsLinkClient():Success()-> lSuccess
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
Envia uma mensagem para a fila do Smart Link
O formato da mensagem a ser enviada é livre, porém geralmente é definida pelo Produto que receberá a mensagem. |
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
Envia uma mensagem para a fila do Smart Link usando audience
O formato da mensagem a ser enviada é livre, porém geralmente é definida pelo Produto que receberá a mensagem. |
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
Retorna a mensagem de erro em uma falha de comunicação com o SmartLink.
Disponível a partir do pacote SmartLink 2.3.0 ou da lib label 20220321. |
Sintaxe: FwTotvsLinkClient():GetError()-> cErro
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.)
Disponível a partir do pacote SmartLink 2.4.4. |
Retorna se as operações realizadas no smartlink estão realizando um refresh do token.
Sintaxe: FwTotvsLinkClient():GetRefreshToken()-> .T. ou .F.
Disponível a partir do pacote SmartLink 2.4.4. |
#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 |
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: