4D v16.3

GET PROCESS VARIABLE

Página Inicial

 
4D v16.3
GET PROCESS VARIABLE

GET PROCESS VARIABLE 


 

GET PROCESS VARIABLE ( processo ; srcVar ; dstVar {; srcVar2 ; dstVar2 ; ... ; srcVarN ; dstVarN} ) 
Parâmetro Tipo   Descrição
processo  Inteiro longo in Número de processo da fonte
srcVar  Variável in Variável fonte
dstVar  Variável in Variável destino

O comando GET PROCESS VARIABLE lê o valor de as variáveis processo srcVar (srvVar2, etc.) desde o processo fonte cujo número se passa em processo e devolve seus valores atuais nas variáveis dstVar (dstVar2, etc.) do processo atual.

Cada variável fonte pode ser una variável, um array ou um elemento de array. Entretanto, tenha em conta as restrições listadas mais adiante nesta seção.

Em cada dupla de variáveis srcVar;dstVar, as duas variáveis devem ser de tipos compatíveis, do contrário os valores que você obtém poderiam não ser significativos.

O processo atual “espia” as variáveis do processo fonte, o processo fonte não for advertido de nenhuma maneira de que outro processo está lendo a instância de suas variáveis.

4D Server: utilizando 4D Client, pode ler as variáveis num processo de destino executado na máquina servidor (procedimento armazenado). Para fazer isto, coloque um sinal menos antes do número de identificação do processo no parâmetro processo.

A comunicação processo “Intermachine”, oferecida pelos comandos GET PROCESS VARIABLE, SET PROCESS VARIABLE e VARIABLE TO VARIABLE, é possível unicamente desde o cliente ao servidor. Sempre é um processo cliente o que lê ou escreve as variáveis de um procedimento armazenado.

Dica: se não conhece o número de identificação do processo servidor, ainda pode utilizar as variáveis inter-processo do servidor. Para fazer isto, pode utilizar qualquer valor negativo em processo. Em outras palavras, não é necessário conhecer o número de identificação do processo para poder utilizar o comando GET PROCESS VARIABLE com as variáveis inter-processo do servidor. Esta possibilidade é muito útil particularmente quando um procedimento armazenado é lançado utilizando o método base On server startup. Como as máquinas cliente não conhecem automaticamente o número de identificação desse processo, todo valor negativo pode ser passado no parâmetro processo.

GET PROCESS VARIABLE não aceita variáveis locais como variáveis fonte.

Por outra parte, as variáveis de destino podem ser interprocesso, processo ou locais. Os valores são “recebidos”  unicamente nas variáveis, não nos campos.

GET PROCESS VARIABLE aceita todo tipo de variável fonte, processo ou interprocesso, exceto:

  • Ponteiros
  • Array de ponteiros
  • Arrays de duas dimensões

O processo fonte deve ser um processo usuário; não pode ser um processo kernel. Se o processo fonte não existe, este comando não tem efeito.

Nota: em modo interpretado, se uma variável fonte não existe, são devolvidos o valor indefinido. Pode detectar isto utilizando a função Type para provar a variável de destino correspondente.

Esta linha de código lê o valor da variável texto vtEstadoActual no processo cujo número for $vlProcesso e devolve o resultado na variável processo vtInfo do processo atual:

 GET PROCESS VARIABLE($vlProcesso;vtEstadoAtual;vtInfo)

Esta linha de código faz o mesmo, mas devolve o valor na variável local $vtInfo de método que está sendo executando no processo atual:

 GET PROCESS VARIABLE($vlProcesso;vtEstadoAtual;$vtInfo)

Esta linha de código faz o mesmo mas devolve o valor na variável vtEstadoAtual do processo atual:

 GET PROCESS VARIABLE($vlProcesso;vtEstadoAtual;vtEstadoAtual)

Nota: o primeiro vtCurStatus designa a instância da variável no processo fonte, o segundo vtCurStatus designa a instância da variável no processo atual.

Este exemplo lê sequencialmente os elementos de um array processo desde o processo indicado por $vlProceso:

 GET PROCESS VARIABLE($vlProcesso;vl_IPCom_Array;$vlTam)
 For($vlElem;1;$vlTam)
    GET PROCESS VARIABLE($vlProcesso;at_IPCom_Array{$vlElem};$vtElem)
  ` Fazer algo com $vtElem
 End for

Nota: neste exemplo, a variável processo vl_IPCom_Array contém o tamanho do Array at_IPCom_Array, e deve ser mantida pelo processo fonte.

Este exemplo faz o mesmo que o anterior, mas lê o array como um todo, ao invés de ler os elementos de maneira sequencial:

 GET PROCESS VARIABLE($vlProcesso;at_IPCom_Array;$anArray)
 For($vlElem;1;Size of array($anArray))
  ` Fazer algo com $anArray{$vlElem}
 End for

Este exemplo lê as instâncias das variáveis v1,v2,v3 no processo fonte e devolve seus valores na instância das mesmas variáveis do processo atual:

 GET PROCESS VARIABLE($vlProcesso;v1;v1;v2;v2;v3;v3)

Ver o exemplo do comando DRAG AND DROP PROPERTIES.



Ver também 

Arrastar e Soltar
CALL PROCESS
DRAG AND DROP PROPERTIES
Processos
SET PROCESS VARIABLE
VARIABLE TO VARIABLE

 
PROPRIEDADES 

Produto: 4D
Tema: Processos (Comunicações)
Número 371

Comportamento diferente em modo remoto

 
HISTÓRIA 

Criado por: 4D v6

 
ARTICLE USAGE

Manual de linguagem 4D ( 4D v16)
Manual de linguagem 4D ( 4D v16.1)
Manual de linguagem 4D ( 4D v16.2)
Manual de linguagem 4D ( 4D v16.3)