4D v14.3

ECRIRE VARIABLE PROCESS

Accueil

 
4D v14.3
ECRIRE VARIABLE PROCESS

ECRIRE VARIABLE PROCESS 


 

ECRIRE VARIABLE PROCESS ( process ; varDestination ; exprSource {; varDestination2 ; exprSource2 ; ... ; varDestinationN ; exprSourceN} ) 
Paramètre Type   Description
process  Entier long in Numéro de process de destination
varDestination  Variable in Variable de destination
exprSource  Variable in Expression source (ou variable source)

La commande ECRIRE VARIABLE PROCESS écrit la ou les valeur(s) de exprSource (exprSource2, etc.) dans la ou les variable(s) process varDestination (varDestination2, etc.) du process de destination dont le numéro est passé dans process.

Chaque variable de destination peut être une variable ou un élément de tableau. Tenez cependant compte des restrictions évoquées ci-dessous.

Pour chaque association varDestination;exprSource, le type de l'expression doit être compatible avec la variable de destination, sinon vous pourrez obtenir des variables avec des valeurs incorrectes. En mode interprété, si la variable de destination n'existe pas, elle est créée et reçoit l'expression. En mode compilé, si aucune variable n'est associée au process de destination, 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.

Lorsque le process courant écrit les variables du process de destination, ce dernier n'est averti en aucune manière de l'écriture de l'instance de ses variables par un autre process.

4D Server : A partir d'un 4D Client, vous pouvez écrire 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 ECRIRE VARIABLE PROCESS, LIRE 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 de destination, vous pouvez tout de même écrire dans 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 ECRIRE VARIABLE PROCESS avec des 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 les postes clients ne connaissent pas automatiquement le numéro de ce process serveur, il vous suffit de passer une valeur négative (n'importe laquelle) dans le paramètre process.

ECRIRE VARIABLE PROCESS n'accepte pas de variables locales comme variables de destination.

ECRIRE VARIABLE PROCESS accepte tout type de variable process ou interprocess de destination, à l'exception :

  • des variables de type Pointeur.
  • des tableaux de tous types. Pour écrire un tableau entier d'un process vers un autre, utilisez la commande VARIABLE VERS VARIABLE. Notez cependant que ECRIRE VARIABLE PROCESS vous permet d'écrire des éléments de tableaux.
  • des éléments de tableaux de pointeurs et des éléments de tableaux à deux dimensions.

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

La ligne de code suivante affecte une chaîne vide à la variable Texte vtCurStatus du process dont le numéro est $vlProcess :

 ECRIRE VARIABLE PROCESS($vlProcess;vtCurStatus;"")

La ligne de code suivante affecte la variable Texte vtCurStatus du process dont le numéro est $vlProcess à la valeur de la variable $vtInfo depuis la méthode en cours d'exécution du process courant :

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

La ligne de code suivante affecte la variable Texte vtCurStatus du process dont le numéro est $vlProcess à la valeur de la même variable dans le process courant :

 ECRIRE VARIABLE PROCESS($vlProcess;vtCurStatus;vtCurStatus)

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

L'exemple suivant place séquentiellement en majuscules les éléments d'un tableau process depuis le process désigné par $vlProcess:

 LIRE VARIABLE PROCESS($vlProcess;vl_IPCom_Array;$vlSize)
 Boucle($vlElem;1;$vlSize)
    LIRE VARIABLE PROCESS($vlProcess;at_IPCom_Array{$vlElem};$vtElem)
    ECRIRE VARIABLE PROCESS($vlProcess;at_IPCom_Array{$vlElem};Majusc($vtElem))
 Fin de boucle

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

L'exemple suivant écrit l'instance des variables v1, v2, v3 dans le process de destination à partir de l'instance de ces mêmes variables dans le process courant :

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

 
PROPRIÉTÉS 

Produit : 4D
Thème : Process (Communications)
Numéro : 370
Nom intl. : SET PROCESS VARIABLE

Comportement différent en mode distant

 
HISTORIQUE 

Créé : 4D v6

 
VOIR AUSSI  

APPELER PROCESS
Introduction aux process
LIRE VARIABLE PROCESS
VARIABLE VERS VARIABLE

 
UTILISATION DE L'ARTICLE

4D - Langage ( 4D v12.4)
4D - Langage ( 4D v11 SQL Release 6)
4D - Langage ( 4D v14 R3)
4D - Langage ( 4D v14 R2)
4D - Langage ( 4D v13.5)
4D - Langage ( 4D v14.3)
4D - Langage ( 4D v14 R4)