Classe: TRpcEstabelece conexão com o TOTVS Application Server para executar as funções disponíveis no ambiente (environment) especificado. NewCria 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 |
|
oRpc()- Retorna o objeto, do tipo TRpc, criado.
O ambiente especificado no parâmetro <cEnv> deve estar configurado no arquivo de configuração (totvsappserver.ini) do TOTVS Application Server. CallProcRealiza 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) . |
|
|
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'.
CallProcExEste método possui a mesma funcionalidade do método CallProc.TRpc(): CallProcEx ( ) --> ConnectCria 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 Inclusão de trecho |
---|
| Application Server |
---|
| Application Server |
---|
nopanel | true |
---|
| 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 MultiProtocolPortSecureRef. 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 DisconnectFecha a conexão RPC com o TOTVS Application Server.TRpc(): Disconnect ( ) --> StartJobInicia a execução de um JOB no Totvs Application ServerTRpc(): 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). 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
|