Árvore de páginas

Você está vendo a versão antiga da página. Ver a versão atual.

Comparar com o atual Ver Histórico da Página

« Anterior Versão 3 Próxima »

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.
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

20.3.0.5 em diante


Propriedades
caractere ClientInfoProp
          Setar o conteudo da propriedade client para envio da mensagem
caractere MsgId
          Indica um ID para a mensagem
caractere MsgType
          Indica o tipo da mensagem
caractere MsgContent
          Conteudo da mensagem
caractere MsgAud
          Conteudo para auditoria
numérico MsgDeliveryTag
          Indica uma flag de entrega da mensagem
numérico MsgAckDeliveryTag
          Seta a flag de entrega da mensagem no conhecimento de recebimento (metodo AckMessage)
numérico MsgAck
          Seta a flag do metodo AckMessage

Resumo dos Métodos
lógico isRunning()
          Retorna verdadeiro (TRUE) se o gRPC Server esta rodando corretamente. Em caso de erro retorna FALSE, consultar ErrorCode() e ErrorDesc()
lógico clientSetup()
          Retorna verdadeiro (TRUE) se a configuração funcionou no gRPC Server corretamente. Em caso de erro retorna FALSE, consultar ErrorCode() e ErrorDesc()
lógico tenantSetup()
          Retorna verdadeiro (TRUE) se a configuração funcionou no gRPC Server corretamente. Em caso de erro retorna FALSE, consultar ErrorCode() e ErrorDesc()
lógico tenantUndo()
          Retorna verdadeiro (TRUE) se a configuração funcionou no gRPC Server corretamente. Em caso de erro retorna FALSE, consultar ErrorCode() e ErrorDesc()
lógico sendMessages()
          Retorna verdadeiro (TRUE) se a mensagem foi enviada com sucesso ao gRPC Server corretamente. Em caso de erro retorna FALSE, consultar ErrorCode() e ErrorDesc()
caractere waitForMessages()
          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()
lógico ackMessage()
          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()
numérico ErrorCode()
          Codigo de erro (obs: erros 100 são internos)
caractere ErrorDesc()
          Descricao do erro

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]

  • Sem rótulos