4D v16.3SET PROCESS VARIABLE |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v16.3
SET PROCESS VARIABLE
SET PROCESS VARIABLE
Der Befehl SET PROCESS VARIABLE schreibt die Prozessvariablen ZielVar (dstVar2, etc.) des Zielprozesses mit der in Prozess übergebenen Nummer mit den in Ausdr1 (expr2, etc.) übergebenen Werten. Jede Zielvariable kann eine Variable oder ein Array-Element sein. Beachten Sie hierzu jedoch die unten aufgelisteten Einschränkungen. In jedem Paar QuellVar;ZielVar müssen beide Variablen zueinander kompatibel sein, da sonst die erhaltenen Werte evtl. ohne Bedeutung sind. Gibt es keine Zielvariable im interpretierten Modus, wird sie erstellt und mit dem Ausdruck zugewiesen. Der aktuelle Prozess “überfliegt” die Variablen aus dem Zielprozess — 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 die Befehle SET PROCESS VARIABLE, SET PROCESS VARIABLE und 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. Tipp: 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. SET PROCESS VARIABLE erlaubt keine lokalen Variablen als Zielvariablen. SET PROCESS VARIABLE erlaubt jede Art von Zielprozess oder Interprozessvariablen. Davon ausgenommen sind:
Der Zielprozess muss ein Benutzerprozess sein, er kann kein Kernel-Prozess sein. Gibt es keinen Zielprozess, wird ein Fehler erzeugt. Diesen Fehler können Sie mit einer Fehlerverwaltungsmethode abfangen, die mit ON ERR CALL installiert wurde. Diese Codezeile setzt (zum leeren String) die Textvariable vtCurStatus des Prozesses mit der in $vlProcess übergebenen Nummer: SET PROCESS VARIABLE($vlProcess;vtCurStatus;"") Diese Codezeile setzt die Textvariable vtCurStatus des Prozesses mit der in $vlProcess übergebenen Nummer auf den Wert der Variablen $vtInfo aus der ausführenden Methode im aktuellen Prozess: SET PROCESS VARIABLE($vlProcess;vtCurStatus;$vtInfo) Diese Codezeile setzt die Textvariable vtCurStatus des Prozesses mit der in $vlProcess übergebenen Nummer auf den Wert derselben Variablen im aktuellen Prozess: SET PROCESS VARIABLE($vlProcess;vtCurStatus;vtCurStatus) Hinweis: Das erste vtCurStatus bezeichnet die Instanz der Variablen im Zielprozess. Das zweite vtCurStatus bezeichnet die Instanz der Variablen im aktuellen Prozess. Dieses Beispiel setzt alle Elemente eines Prozessarray aus dem mit $vlProcess angegebenen Prozess sequentiell in Großbuchstaben: GET PROCESS VARIABLE($vlProcess;vl_IPCom_Array;$vlSize) Hinweis: In diesem Beispiel enthält die Prozessvariable vl_IPCom_Array die Größe des Array at_IPCom_Array und muss vom Quell-/Zielprozess aufrechterhalten werden. Dieses Beispiel schreibt die Instanz der Variablen v1, v2 und v3 des Zielprozesses mit der Instanz derselben Variablen aus dem aktuellen Prozess: SET PROCESS VARIABLE($vlProcess;v1;v1;v2;v2;v3;v3)
Siehe auch
CALL PROCESS
|
EIGENSCHAFTEN
Produkt: 4D GESCHICHTE
Erstellt: 4D v6 ARTIKELVERWENDUNG
4D Programmiersprache ( 4D v16) |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||