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
Nome | Tipo | Descrição | Obrigatório | Referência |
cEnv | Caracter | Indica o ambiente (environment) que será utilizado para execução das funções. | X |
- ()
- Retorna o objeto, do tipo TRpc, criado.
CallProc
Realiza uma chamada de função no TOTVS Application Server.
TRpc(): CallProc ( < cProcName>, [ uParam] ) --> xRet
Nome | Tipo | Descrição | Obrigatório | Referência |
cProcName | Caracter | Indica o nome da função que será executada no TOTVS Application Server. | X | |
uParam | Qualquer | Indica o(s) parâmetro(s) utilizado(s) pela função especificada no parâmetro(s) . |
- ()
- 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
Nome | Tipo | Descrição | Obrigatório | Referência |
cRpcServer | Caracter | Indica o nome ou endereço IP, do TOTVS Application Server, que será utilizado para realizar a chamada das funções. | X | |
nRPCPort | Numérico | Indica a porta de conexão com o TOTVS Application Server. | X | |
nTimeOut | Numérico | Indica 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. (**) | ||
lSSL | lógico | Indica 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
- (logico)
- Retorna verdadeiro (.T.), se a conexão for estabelecida com sucesso; caso contrário, o retorno será falso (.F.).
(**) O parâmetro nTimeOut está disponível a partir da build 7.00.131227A
StartJob
Inicia a execução de um JOB no Totvs Application Server
TRpc(): StartJob ( < cProcName>, < lWait>, [ uParam] ) -->
Nome | Tipo | Descrição | Obrigatório | Referência |
cProcName | Caracter | Indica o nome da função que será executada como um JOB. | X | |
lWait | Lógico | Indica 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 | |
uParam | Qualquer | Indica 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).
- 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