A classe tGrpcSmartlink realiza a comunicação GRPC com o TOTVS Smartlink atraves de um conjunto de chamadas de mensagens pre-estabelecidos.
Observações
- A classe suporta atualmente as mensagens ja pre-estabelecidas, sendo possivel utilizar para comunicação com outros produtos atraves do protocolo GPRC, desde que utilizem as mesmas mensagens suportadas.
Exemplos
user function Example(aResult) ogRPC := tGrpcSmartlink():New("localhost",5001) if ogRPC:isRunning() conout("Server is online") else conout(ogRPC:ErrorDesc()) return endif ogRPC:ClientInfoProp := '{"dummy.json":{"clientproperties":[{"prop01": false}]}}' if ogRPC:clientSetup() conout(ogRPC:ErrorDesc()) endif ogRPC:ClientInfoProp := '{"dummy.json":{"clientproperties":[{"prop01": true}]}}' if(ogRPC:clientSetup() == .F.) conout(ogRPC:ErrorDesc()) endif ogRPC:ClientInfoProp := "e4vddea4-baba-4c9a-b772-gh77a5fce789" if (ogRPC:tenantSetup() == .F.) conout(ogRPC:ErrorDesc()) endif ogRPC:ClientInfoProp := "e4vddea4-baba-4c9a-b772-gh77a5fce789" if (ogRPC:tenantUndo() == .F.) conout(ogRPC:ErrorDesc()) endif oGRPC:MsgId := "idval" oGRPC:MsgType := "C" oGRPC:MsgContent := "mensagem enviada do client para o server" oGRPC:MsgAud := "audience" oGRPC:MsgDeliveryTag := 0 if ogRPC:sendMessage() conout("Mensagem enviada com sucesso") else conout(ogRPC:ErrorDesc()) endif conout(ogRPC:waitForMessages()) if(ogRPC:MsgContent = "mensagem enviada do client para o server") conout("erro, nao veio informacao do servidor") else oGRPC:MsgAckDeliveryTag := 1 ogRPC:MsgAck := .T. ogRPC:ackMessage() conout("waitForMessages ok!") endif return
Abrangência
20.3.0.5 em diante
Propriedades | |||
caractere | ClientInfoProp
| ||
caractere | MsgId
| ||
caractere | MsgType
| ||
caractere | MsgContent
| ||
caractere | MsgAud
| ||
numérico | MsgDeliveryTag
| ||
numérico | MsgAckDeliveryTag
| ||
numérico | MsgAck
|
Resumo dos Métodos | |||
lógico | isRunning()
| ||
lógico | clientSetup()
| ||
lógico | tenantSetup()
| ||
lógico | tenantUndo()
| ||
lógico | sendMessages()
| ||
caractere | waitForMessages()
| ||
lógico | ackMessage()
| ||
numérico | ErrorCode()
| ||
caractere | ErrorDesc()
|
Detalhes dos Métodos |
isRunning
- lógico - isRunning()
Checa se o gRPC Server esta rodando corretamente.
- Retorno:
- lógico lRet - Retorna verdadeiro (TRUE) se o gRPC Server esta rodando corretamente. Em caso de erro retorna FALSE, consultar ErrorCode() e ErrorDesc()
- Exemplos: if ogRPC:isRunning()
conout("Server is online")
else
conout(ogRPC:ErrorDesc())
endif
clientSetup
- lógico - clientSetup()
Configura um client no servidor
- Retorno:
- lógico lRet - Retorna verdadeiro (TRUE) se a configuração funcionou no gRPC Server corretamente. Em caso de erro retorna FALSE, consultar ErrorCode() e ErrorDesc()
- Exemplos:
- [code]
ogRPC:ClientInfoProp = '{"dummy.json":{"clientproperties":[{"prop01": false}]}}'
if ogRPC:clientSetup()
conout(ogRPC:ErrorDesc())
endif
ogRPC:ClientInfoProp = '{"dummy.json":{"clientproperties":[{"prop01": true}]}}'
if ogRPC:clientSetup()
conout("configuração realizada com sucesso")
endif
[code]
tenantSetup
- lógico - tenantSetup()
Configura um um grupo ou entidade de recursos no servidor gRPC
- Retorno:
- lógico lRet - Retorna verdadeiro (TRUE) se a configuração funcionou no gRPC Server corretamente. Em caso de erro retorna FALSE, consultar ErrorCode() e ErrorDesc()
- Exemplos:
- [code]
ogRPC:ClientInfoProp := "e4vddea4-baba-4c9a-b772-gh77a5fce789"
if ogRPC:tenantSetup()
conout(ogRPC:ErrorDesc())
endif
[code]
tenantUndo
- lógico - tenantUndo()
Desfaz a configuração um um grupo ou entidade de recursos no servidor gRPC
- Retorno:
- lógico lRet - Retorna verdadeiro (TRUE) se a configuração funcionou no gRPC Server corretamente. Em caso de erro retorna FALSE, consultar ErrorCode() e ErrorDesc()
- Exemplos:
- [code]
ogRPC:ClientInfoProp := "e4vddea4-baba-4c9a-b772-gh77a5fce789"
if ogRPC:tenantUndo()
conout(ogRPC:ErrorDesc())
endif
[code]
sendMessages
- lógico - sendMessages()
Envia uma mensagem do client para o servidor
- Retorno:
- lógico lRet - Retorna verdadeiro (TRUE) se a mensagem foi enviada com sucesso ao gRPC Server corretamente. Em caso de erro retorna FALSE, consultar ErrorCode() e ErrorDesc()
- Exemplos:
- [code]
oGRPC:MsgId := "idval"
oGRPC:MsgType := "C"
oGRPC:MsgContent := "mensagem enviada do client para o server"
oGRPC:MsgAud := "audience"
oGRPC:MsgDeliveryTag := 0
if ogRPC:sendMessage()
conout("Mensagem enviada com sucesso)
else
conout(ogRPC:ErrorDesc())
endif
[code]
waitForMessages
- caractere - waitForMessages()
Aguarda e recebe uma mensagem do servidor
- Retorno:
- caractere lRet - Retorna o conteudo da mensagem (tambem setada em :MsgContent) se a mensagem foi recebida com sucesso ao gRPC Server corretamente. Em caso de erro não altera o conteudo da :MsgContent, e pode ser consultado ErrorCode() e ErrorDesc()
- Exemplos:
- [code]
ogRPC:MsgContent := ""
conout(ogRPC:waitForMessages())
if(ogRPC:MsgContent = "")
conout("erro, nao veio informacao do servidor")
conout(ogRPC:ErrorDesc())
else
conout("Mensagem recebida com sucesso)
endif
[code]
ackMessage
- lógico - ackMessage()
Envia reconhecimento de uma mensagem no cliente
- Retorno:
- lógico lRet - Retorna o conteudo da mensagem (tambem setada em :MsgContent) se a mensagem foi recebida com sucesso ao gRPC Server corretamente. Em caso de erro não altera o conteudo da :MsgContent, e pode ser consultado ErrorCode() e ErrorDesc()
- Exemplos:
- [code]
ogRPC:MsgContent := ""
conout(ogRPC:waitForMessages())
if(ogRPC:MsgContent = "")
conout("erro, nao veio informacao do servidor")
conout(ogRPC:ErrorDesc())
else
oGRPC:MsgAckDeliveryTag := 1
ogRPC:MsgAck := .T.
if ogRPC:ackMessage()
else
conout("setar reconhecimento falhou")
conout(ogRPC:ErrorDesc())
endif
conout("Mensagem recebida com sucesso)
endif
[code]
ErrorCode
- numérico - ErrorCode()
Retorna o codigo de erro do ultimo comando realizado
- Retorno:
- numérico lRet - Codigo de erro (obs: erros 100 são internos)
- Exemplos:
- [code]
ogRPC:MsgContent := ""
conout(ogRPC:waitForMessages())
if(ogRPC:MsgContent = "")
conout("erro, nao veio informacao do servidor")
conout(ogRPC:ErrorCode())
else
conout("Mensagem recebida com sucesso)
endif
[code]
ErrorDesc
- caractere - ErrorDesc()
Retorna a descrição do erro do ultimo comando realizado
- Retorno:
- caractere lRet - Descricao do erro
- Exemplos:
- [code]
ogRPC:MsgContent := ""
conout(ogRPC:waitForMessages())
if(ogRPC:MsgContent = "")
conout("erro, nao veio informacao do servidor")
conout(ogRPC:ErrorDesc())
else
conout("Mensagem recebida com sucesso)
endif
[code]
Visão Geral
Import HTML Content
Conteúdo das Ferramentas
Tarefas