Este es el sitio web histórico de la documentación de 4D. La documentación se está trasladando progresivamente a developer.4d.com |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v20 R7
SET PROCESS VARIABLE
|
SET PROCESS VARIABLE ( proceso ; dstVar ; expr {; dstVar2 ; expr2 ; ... ; dstVarN ; exprN} ) | ||||||||
Parámetro | Tipo | Descripción | ||||||
proceso | Entero largo |
![]() |
Número de proceso de destino | |||||
dstVar | Variable |
![]() |
Variable de destino | |||||
expr | Variable |
![]() |
Expresión fuente (o variable fuente) | |||||
El comando SET PROCESS VARIABLE escribe las variables proceso dstVar (dstVar2, etc.) del proceso de destino cuyo número se pasa en proceso utilizando los valores pasados en expr1 (expr2, etc.).
Cada variable de destino puede ser una variable o un elemento de array. Sin embargo, vea las restricciones listadas más adelante en esta sección.
Para cada pareja de variables dstVar;expr, la expresión debe ser compatible con la variable de destino, de lo contrario usted puede terminar con un valor en la variable que no tiene significado. En modo interpretado, si una variable de destino no existe, se crea y asigna con la expresión.
El proceso actual escribe las variables del proceso de destino, el proceso de destino no es advertido de ninguna manera de que otro proceso está escribiendo la instancia de sus variables.
4D Server: utilizando 4D Client, puede escribir variables en un proceso de destino ejecutado en el equipo servidor (procedimiento almacenado). Para hacer esto, coloque un signo menos antes del número de identificación del proceso en el parámetro proceso.
La comunicación proceso “Intermachine”, ofrecida por los comandos GET PROCESS VARIABLE, SET PROCESS VARIABLE y VARIABLE TO VARIABLE, es posible únicamente desde el cliente al servidor. Siempre es un proceso cliente el que lee o escribe las variables de un procedimiento almacenado.
Tip: en otras palabras, no es necesario conocer el número de identificación del proceso para poder utilizar el comando SET PROCESS VARIABLE con las variables interproceso del servidor. Esta posibilidad es muy útil particularmente cuando un procedimiento almacenado se lanza utilizando el método base On server startup. Como los equipos cliente no conocen automáticamente el número de identificación de ese proceso, todo valor negativo puede pasarse en el parámetro proceso.
SET PROCESS VARIABLE no acepta variables locales como variables de destino.
SET PROCESS VARIABLE acepta todo tipo de proceso de variable proceso o interproceso de destino, excepto:
El proceso de destino debe ser un proceso usuario; no puede ser un proceso kernel. Si el proceso de destino no existe, se genera un error. Puede encontrar este error utilizando un método de gestión de errores instalado con ON ERR CALL.
La siguiente línea de código asigna (a la cadena vacía) el texto de la variable vtEstadoActual del proceso cuyo número es $vlProceso:
SET PROCESS VARIABLE($vlProceso;vtEstadoActual;"")
Esta línea de código asigna a la variable texto vtEstadoActual del proceso cuyo número es $vlProceso el valor de la variable $vtInfo desde el método de ejecución en el proceso actual:
SET PROCESS VARIABLE($vlProceso;vtEstadoActual;$vtInfo)
Esta línea de código define el texto de la variable vtEstadoActual del proceso cuyo número es $vlProceso al valor de la misma variable en el proceso actual:
SET PROCESS VARIABLE($vlProceso;vtEstadoActual;vtEstadoActual)
Nota: el primer vtEstadoActual designa la instancia de la variable en el proceso de destino. El segundo vtEstadoActual designa la instancia de la variable en el proceso actual.
Este ejemplo vuelve mayúsculas secuencialmente todos los elementos de un array proceso desde el proceso indicado por $vlProceso:
GET PROCESS VARIABLE($vlProceso;vl_IPCom_Array;$vlTam)
For($vlElem;1;$vlSize)
GET PROCESS VARIABLE($vlProceso;at_IPCom_Array{$vlElem};$vtElem)
SET PROCESS VARIABLE($vlProceso;at_IPCom_Array{$vlElem};Uppercase($vtElem))
End for
Nota: en este ejemplo, la variable proceso vl_IPCom_Array contiene el tamaño del array at_IPCom_Array y debe ser mantenida por el proceso fuente/destino.
Este ejemplo escribe la instancia de las variables v1, v2 y v3 utilizando la instancia de las mismas variables desde el proceso actual:
SET PROCESS VARIABLE($vlProceso;v1;v1;v2;v2;v3;v3)
GET PROCESS VARIABLE
POST OUTSIDE CALL
Procesos
VARIABLE TO VARIABLE
Producto: 4D
Tema: Procesos (Comunicación)
Número
370
Creado por: 4D v6
Manual de lenguaje 4D ( 4D v20 R7)