LIRE VARIABLE PROCESS

4D - Documentation   Français   English   German   4e Dimension, Commandes par thèmes   4e Dimension, Liste alphabétique des commandes   4e Dimension, Constantes par thèmes   Retour   Précédent   Suivant

version 6.0


LIRE VARIABLE PROCESS (process; varSource; varDestination{; varSource2; varDestination2; ...; varSourceN; varDestinationN})

ParamètreTypeDescription
processNumériqueNuméro de process source
varSourceVariableVariable source
varDestinationVariableVariable de destination

Description

La commande LIRE VARIABLE PROCESS lit la valeur de la ou des variable(s) process varSource (varSource2, etc.) depuis le process source dont le numéro est passé dans process et la retourne dans la ou les variables(s) varDestination ( varDestination2, etc.) du process courant.

Chaque variable source peut être une variable, un tableau ou un élément de tableau. Tenez cependant compte des restrictions évoquées plus bas.

Pour chaque association varSource;varDestination les types des deux variables doivent être compatibles, sinon vous pourrez obtenir des valeurs non significatives.

Le process courant "pille" les variables du process de destination : ce dernier n'est averti en aucune manière de la lecture de l'instance de ses variables par un autre process.

4D Server : A partir d'un 4D Client, vous pouvez lire des variables dans un process de destination exécuté sur le poste serveur (procédure stockée). Pour cela, passez dans process le numéro du process serveur en négatif, c'est-à-dire précédé du signe - (moins).

Attention, la communication process "intermachine" permise par les commandes LIRE VARIABLE PROCESS, ECRIRE VARIABLE PROCESS et VARIABLE VERS VARIABLE n'est possible que du client vers le serveur. C'est toujours un process client qui lit ou écrit les variables d'une procédure stockée.

Astuce : Si vous ne connaissez pas le numéro du process serveur source, vous pouvez tout de même lire les variables interprocess du serveur. Pour cela, il vous suffit de passer toute valeur négative dans process. En d'autres termes, il n'est pas nécessaire de connaître précisément le numéro d'un process exécuté sur le serveur pour utiliser LIRE VARIABLE PROCESS avec les variables interprocess du serveur.

Cette possibilité s'avère particulièrement utile dans le cas d'une procédure stockée lancée sur le serveur par l'intermédiaire de la Méthode base Sur démarrage serveur. Comme, par défaut, les postes clients ne connaissent pas le numéro de ce process serveur, il vous suffit de passer une valeur négative (n'importe laquelle) dans le paramètre process.

Restrictions

LIRE VARIABLE PROCESS n'accepte pas de variables locales comme variables sources.

En revanche, les variables de destination peuvent être interprocess, process ou locales. Vous pouvez "recevoir" les valeurs uniquement dans des variables, pas dans des champs.

LIRE VARIABLE PROCESS accepte tout type de variable source, process ou interprocess, à l'exception des variables de type :

Pointeur

Tableau de pointeurs

Tableau à deux dimensions

Le process source doit être un process utilisateur, ce ne peut être un des process du moteur de 4D. Si le process source n'existe pas, la commande ne fait rien.

Note : En mode interprété, si une variable source n'existe pas, la valeur indéfinie est retournée. Vous pouvez le détecter en testant la variable de destination correspondante à l'aide de la fonction Type. En mode compilé, si aucune variable n'est associée au process source, une erreur est retournée. Vous pouvez intercepter cette erreur à l'aide d'une méthode de gestion d'erreurs installée par la commande APPELER SUR ERREUR.

Exemples

(1) La ligne de code suivante lit la valeur de la variable Texte vtCurStatus dans le process dont le numéro est $vlProcess et retourne le résultat dans la variable process vtInfo du process courant :

   LIRE VARIABLE PROCESS($vlProcess;vtCurStatus;vtInfo)

(2) La ligne de code suivante fait la même chose mais retourne la valeur dans la variable locale $vtInfo de la méthode s'exécutant dans le process courant :

   LIRE VARIABLE PROCESS($vlProcess;vtCurStatus;$vtInfo)

(3) La ligne de code suivante fait la même chose mais retourne la valeur dans la même variable vtCurStatus du process courant :

   LIRE VARIABLE PROCESS($vlProcess;vtCurStatus;vtCurStatus)

Note : La première vtCurStatus désigne l'instance de la variable dans le process source, la seconde vtCurStatus désigne l'instance de la variable dans le process courant.

(4) L'exemple suivant lit séquentiellement les éléments d'un tableau process depuis le process indiqué par $vlProcess :

   LIRE VARIABLE PROCESS($vlProcess;vl_IPCom_Array;$vlSize)
   Boucle($vlElem;1;$vlSize)
      LIRE VARIABLE PROCESS($vlProcess;at_IPCom_Array{$vlElem};$vtElem)
         ` Faire quelque chose avec $vtElem
   Fin de boucle

Note : Dans cet exemple, la variable process vl_IPCom_Array doit être gérée par le process source et contient la taille du tableau at_IPCom_Array.

(5) L'exemple suivant fait la même chose que le précédent mais lit le tableau dans son intégralité au lieu de le faire élément par élément :

   LIRE VARIABLE PROCESS($vlProcess;at_IPCom_Array;$anArray)
   Boucle($vlElem;1;Taille tableau($anArray))
      ` Faire quelque chose avec $anArray{$vlElem}
   Fin de boucle

(6) L'exemple suivant lit l'instance des variables v1,v2,v3 dans le process source et retourne leurs valeurs dans l'instance des mêmes variables du process courant :

   LIRE VARIABLE PROCESS($vlProcess;v1;v1;v2;v2;v3;v3)

(7) Reportez-vous à l'exemple de la commande PROPRIETES GLISSER DEPOSER.

Référence

APPELER PROCESS, ECRIRE VARIABLE PROCESS, Introduction aux process, Présentation du Glisser-Déposer, PROPRIETES GLISSER DEPOSER, VARIABLE VERS VARIABLE.


4D - Documentation   Français   English   German   4e Dimension, Commandes par thèmes   4e Dimension, Liste alphabétique des commandes   4e Dimension, Constantes par thèmes   Retour   Précédent   Suivant