Árvore de páginas

Classe: TRpc

Estabelece conexão com o TOTVS Application Server para executar as funções disponíveis no ambiente (environment) especificado.


New

Cria objeto TRpc para o ambiente (environment) especificado, sem conexão ativa.


TRpc(): New ( < cEnv> ) --> oRpc



NomeTipoDescriçãoObrigatórioReferência
cEnvCaracterIndica o ambiente (environment) que será utilizado para execução das funções.X


oRpc
    ()
  • Retorna o objeto, do tipo TRpc, criado.

O ambiente especificado no parâmetro &ltcEnv> deve estar configurado no arquivo de configuração (totvsappserver.ini) do TOTVS Application Server.


CallProc

Realiza uma chamada de função no TOTVS Application Server.


TRpc(): CallProc ( < cProcName>, [ uParam] ) --> xRet



NomeTipoDescriçãoObrigatórioReferência
cProcNameCaracterIndica o nome da função que será executada no TOTVS Application Server.X
uParamQualquerIndica o(s) parâmetro(s) utilizado(s) pela função especificada no parâmetro(s) .


xRet
    ()
  • Retorno da função executada.

  • O parâmetro indica 1 de N parâmetros que podem ser especificados, dependendo do número de parâmetros que a função que está sendo executada precise. Para isso, os parâmetros são separados por vírgula.Os tipos de dados Objeto e Codeblock não podem ser utilizados na passagem e/ou retorno da função chamada pela classe TRpc.Este método deve ser utilizado após a conexão estabelecida através do método Connect.
  • O retorno da execução deste método poderá ser influenciado pelo resultado da validação do cliente RPC, caso esta característica opcional esteja implementada no servidor, conforme explicado em 'Como reforçar a segurança via RPC'.

CallProcEx

Este método possui a mesma funcionalidade do método CallProc.


TRpc(): CallProcEx ( ) -->

Connect

Cria uma conexão de RPC com o TOTVS Application Server.


TRpc(): Connect ( < cRpcServer>, < nRPCPort> , [nTimeOut] [, lSSL ] ) --> lCon



NomeTipoDescriçãoObrigatórioReferência
cRpcServerCaracterIndica o nome ou endereço IP, do TOTVS Application Server, que será utilizado para realizar a chamada das funções.X
nRPCPortNuméricoIndica a porta de conexão com o TOTVS Application Server.X
nTimeOutNuméricoIndica o tempo em segundos de time-out para a conexão ser estabelecida. Caso não especificado ( Default = 0 ), o tempo de retorno depende do sistema operacional e da condição de erro encontrada na tentativa de estabelecer a conexão. Por exemplo, no caso do servidor de destino da conexão estar desligado, ou seja colocado um IP que não esteja na rede, a operação de conexão demora de 20 a 30 segundos para retornar uma condição de falha. (**)

lSSLlógicoIndica se deve fazer uma conexão SSL com o servidor Remoto.

Obs. Para TOTVS | Application Server com versões superiores a 19.3.0.x, o parâmetro lSSL, permite alterar o tipo de conexão com o Servidor, por padrão o parâmetro lSSL, segue a configuração do servidor de aplicação, ou seja, se a porta multi protocolo está com a conexão segura ligada terá valor padrão .T.se a porta multi protocolo está com conexão segura desabilitada, terá valor padrão .F..
A mudança dinâmica do valor padrão foi implementada para evitar que todos os códigos escritos tivessem que passar a especificar o SSL (GetPort), gerando grande retrabalho. Ver em: 
Seção [Drivers], chave MultiProtocolPortSecure

Ref. Application Server - Porta Multiprotocolo


lCon
    (logico)
  • Retorna verdadeiro (.T.), se a conexão for estabelecida com sucesso; caso contrário, o retorno será falso (.F.).

Este método deve ser utilizado após a execução do método New.
(**) O parâmetro nTimeOut está disponível a partir da build 7.00.131227A  

Disconnect

Fecha a conexão RPC com o TOTVS Application Server.


TRpc(): Disconnect ( ) -->

StartJob

Inicia a execução de um JOB no Totvs Application Server


TRpc(): StartJob ( < cProcName>, < lWait>, [ uParam] ) -->



NomeTipoDescriçãoObrigatórioReferência
cProcNameCaracterIndica o nome da função que será executada como um JOB.X
lWaitLógicoIndica se a chamada de RPC deve aguardar a execução do JOB. Se verdadeiro (.T.), aguarda a execução do JOB; caso contrário, falso (.F.), o JOB é iniciado e a chamada RPC finalizada.X
uParamQualquerIndica o(s) parâmetro(s) utilizado(s) pela função especificada no parâmetro .


Se lWait for verdadeiro (.T.) o retorno do StartJob será o retorno da função a ser executada como um JOB (cProcName), caso lWait seja falso (.F.) o retorno é nulo (NIL).

Observações

  • A classe não pode ser utilizadas com funções que possuam interface com o usuário.O parâmetro , indica 1 de N parâmetros que podem ser especificados, dependendo do número de parâmetros que a função que está sendo executada precise. Para isso, os parâmetros são separados por vírgula.Os tipos de dados Objeto e Codeblock não podem ser utilizados na passagem e/ou retorno da função chamada pela classe TRpc.
  • O retorno da execução deste método poderá ser influenciado pelo resultado da validação do cliente RPC, caso esta característica opcional esteja implementada no servidor, conforme explicado em 'Como reforçar a segurança via RPC'.


#INCLUDE "TOTVS.CH"User Function TSTRPC()Local oServerLocal cRpcServer := "127.0.0.1"Local nRPCPort := 1029Local cRPCEnv := "Environment"// Criando objeto do tipo tRpcConOut("Criando objeto do tipo tRpc...")oServer := TRPC():New( cRPCEnv )// Conectando ao servidorConOut("Conectando ao servidor: " + cRpcServer + " - Porta: " + Str(nRPCPort,4,0))If oServer:Connect( cRpcServer, nRPCPort ) 	ConOut("Executando (StartJob) funcao RpcJob...")	uRet := oServer:StartJob("U_RpcJob", .F., 10)    ConOut(uRet)		// Desconectando do servidor     	ConOut("Desconectando do servidor...")	oServer:Disconnect()Else	ConOut("Conexao indisponivel com o servidor: " + cRPCServer)EndIfUser Function RpcJob(nTimes)Local nI := 0//Local nTimes := 10For nI := 1 To nTimes	ConOut("RpcJob => " + Str(nI, 2, 0))	Sleep(1000)NextReturn Nil

  • A classe não pode ser utilizada com funções que possuam interface com o usuário.
  • Os tipos de dados Objeto e Codeblock não podem ser utilizados na passagem e/ou retorno da função chamada pela classe TRpc.
  • O retorno da execução dos métodos CallProc, CallProcEx e StartJob poderá ser influenciado pelo resultado da validação do cliente RPC, caso esta característica opcional esteja implementada no servidor, conforme explicado em 'Como reforçar a segurança via RPC'.



#INCLUDE "TOTVS.CH"User Function TSTRPC()Local oServerLocal cRpcServer := "127.0.0.1"Local nRPCPort := 1029Local cRPCEnv := "Environment"// Criando objeto do tipo tRpcConOut("Criando objeto do tipo tRpc...")oServer := TRPC():New( cRPCEnv )// Conectando ao servidorConOut("Conectando ao servidor: " + cRpcServer + " - Porta: " + Str(nRPCPort,4,0))If oServer:Connect( cRpcServer, nRPCPort ) 	// Executando Funcao 	ConOut("Executando funcao GetSrvProfString...")	uRet := oServer:CallProc("GetSrvProfString", "RootPath", "" )	ConOut("Retorno da Funcao => " + uRet)	oServer:CallProc("MsgAlert", uRet)	// Desconectando do servidor     	ConOut("Conectando do servidor...")	oServer:Disconnect()Else	ConOut("Conexao indisponivel com o servidor: " + cRPCServer)EndIfReturn Nil

TOTVS Application Server 10