Version 6.0.2
VARIABLE TO VARIABLE (Prozess; ZielVar; QuellVar{; ZielVar2; QuellVar2; ...; ZielVarN; QuellVarN})
Parameter | Typ | Beschreibung | |
Prozess | Numerisch | Zielprozessnummer | |
ZielVar | Variable | Zielvariable | |
QuellVar | Variable | Quellvariable |
Beschreibung
Der Befehl VARIABLE TO VARIABLE schreibt die Prozessvariablen ZielVar (ZielVar2, etc.) des Zielprozesses mit der in Prozess übergebenen Nummer mit den Werten der Variablen QuellVar1 QuellVar2, etc.
VARIABLE TO VARIABLE führt dieselbe Aktion wie SET PROCESS VARIABLE aus bis auf folgende Unterschiede:
In SET PROCESS VARIABLE übergeben Sie Quellausdrücke, und können deshalb ein Array nicht als Ganzes übergeben. In VARIABLE TO VARIABLE müssen Sie ausdrücklich Quellvariablen übergeben und können deshalb ein Array als Ganzes übergeben.
Jede Zielvariable von SET PROCESS VARIABLE kann eine Variable oder ein Array-Element sein, jedoch nicht ein Array als Ganzes. Jede Zielvariable von VARIABLE TO VARIABLE kann eine Variable oder ein Array oder ein Array-Element sein.
In jedem Paar ZielVar;QuellVar müssen beide Variablen zueinander kompatibel sein, da sonst die erhaltenen Werte evtl. ohne Bedeutung sind. Gibt es im interpretierten Modus keine Zielvariable, wird sie erstellt und mit Typ und Wert der Quellvariablen zugewiesen
Der aktuelle Prozess "überfliegt" die Variablen aus dem Quellprozess dieser Prozess erhält keine Warnung, dass ein anderer Prozess die Instanz seiner Variablen liest.
4D Server: Mit 4D Client können Sie Variablen in einen Zielprozess schreiben, der auf dem Server-Rechner ausgeführt wird (Serverprozedur). Versehen Sie dazu die im Parameter Prozess angegebene Nummer mit einem Minuszeichen.
Wichtig: Die Prozesskommunikation zwischen mehreren Rechnern über den Befehl VARIABLE TO VARIABLE ist nur vom Client zum Server möglich. Es ist immer ein Client-Prozess, der die Variablen einer Serverprozedur liest oder schreibt.
TIP: Kennen Sie nicht die Kennummer der Serverprozedur, können Sie auch die Interprozessvariablen des Servers verwenden. Dazu können Sie jeden negativen Wert in Prozess eingeben. Sie müssen also nicht unbedingt die Kennummer des Prozesses wissen, um SET PROCESS VARIABLE mit den Interprozessvariablen des Servers einzusetzen. Das ist von Vorteil, wenn eine Serverprozedur mit der Datenbankmethode On server startup gestartet wird. Da Client-Rechner nicht automatisch die Kennummer dieses Prozesses wissen, können Sie im Parameter Prozess einen beliebigen negativen Wert übergeben.
Einschränkungen
VARIABLE TO VARIABLE erlaubt keine lokalen Variablen als Zielvariablen.
VARIABLE TO VARIABLE erlaubt für die Zielvariable jede Art von Prozess- oder Interprozessvariable. Davon ausgenommen sind:
Zeiger
Arrays von Zeigern
Zweidimensionale Arrays
Der Zielprozess muss ein Benutzerprozess sein; er kann kein Kernelprozess sein. Gibt es keinen Zielprozess, wird ein Fehler generiert. Sie können ihn mit einer Fehlerverwaltungsmethode ausfindig machen, die mit ON ERR CALL installiert wurde.
Beispiel
Folgendes Beispiel liest ein Prozess-Array aus dem mit $vlProcess angegebenen Prozess, setzt die Elemente sequentiell in Großbuchstaben und schreibt das Array dann als Ganzes zurück:
GET PROCESS VARIABLE($vlProcess;at_IPCom_Array;$anArray) For($vlElem;1;Size of array($anArray)) $anArray{$vlElem}:=Uppercase($anArray{$vlElem}) End for VARIABLE TO VARIABLE($vlProcess;at_IPCom_Array;$anArray)
Referenz
Einführung in Prozesse, GET PROCESS VARIABLE, SET PROCESS VARIABLE.
Exchanging Data Between Processes