GET PROCESS VARIABLE

4D - Documentation   Français   English   German   4D Programmiersprache, Befehle nach Themen   4D Programmiersprache, Befehle alphabetisch   4D Programmiersprache, Konstanten nach Themen   Back   Previous   Next

Version 6.0


GET PROCESS VARIABLE (Prozess; QuellVar; ZielVar{; QuellVar2; ZielVar2; ...; QuellVarN; ZielVarN})

ParameterTypBeschreibung
ProzessNumerischQuellprozessnummer
QuellVarVariableQuellvariable
ZielVarVariableZielvariable

Beschreibung

Der Befehl GET PROCESS VARIABLE liest die Prozessvariablen QuellVar (srvVar2, etc.) aus dem Quellprozess mit der in Prozess übergebenen Nummer und gibt deren aktuelle Werte in den Variablen ZielVar ( dstVar2, etc.) des aktuellen Prozesses zurück.

Jede Quellvariable kann eine Variable, ein Array oder ein Array-Element sein. Beachten Sie 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.

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 einem Zielprozess lesen, 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 GET PROCESS 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.

Einschränkungen

GET PROCESS VARIABLE erlaubt keine lokalen Variablen als Quellvariablen.

Zielvariablen können dagegen Interprozess-, Prozess- oder lokale Variablen sein. Sie "empfangen" die Werte nur in Variablen, nicht in Feldern.

GET PROCESS VARIABLE erlaubt jede Art von Quellprozess oder Interprozessvariable. Davon ausgenommen sind:

Zeiger

Arrays von Zeigern

Zweidimensionale Arrays

Der Quellprozess muss ein Benutzerprozess sein; er kann kein Kernelprozess sein. Gibt es keinen Quellprozess, hat der Befehl keine Auswirkung.

Hinweis: Im interpretierten Modus wird ein undefinierter Wert zurückgegeben, wenn es keine Quellvariable gibt. Das können Sie mit der Funktion Typ herausfinden. Damit testen Sie die dazugehörige Zielvariable.

Beispiele

1. Diese Codezeile liest den Wert der Textvariablen vtCurStatus aus dem Prozess mit der Prozessnummer $vlProcess. Sie gibt den Wert in der Prozessvariablen vtInfo des aktuellen Prozesses zurück:

   GET PROCESS VARIABLE($vlProcess;vtCurStatus;vtInfo)

2. Diese Codezeile führt dasselbe aus, gibt den Wert jedoch in der lokalen Variablen $vtInfo für die Methode zurück, die den aktuellen Prozess ausführt:

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

3. Diese Codezeile führt dasselbe aus, gibt den Wert jedoch in der Variablen vtCurStatus des aktuellen Prozesses zurück:

   GET PROCESS VARIABLE($vlProcess;vtCurStatus;vtCurStatus)

Hinweis: Das erste vtCurStatus bezeichnet die Instanz der Variablen im Quellprozess. Das zweite vtCurStatus bezeichnet die Instanz der Variablen im aktuellen Prozess.

4. Dieses Beispiel liest sequentiell die Elemente eines Prozess-Arrays aus dem in $vlProcess angegebenen Prozess:

   GET PROCESS VARIABLE($vlProcess;vl_IPCom_Array;$vlSize)
   For($vlElem;1;$vlSize)
      GET PROCESS VARIABLE($vlProcess;at_IPCom_Array{$vlElem};$vtElem)
         ` Führe etwas aus mit $vtElem
   End for

Hinweis: In diesem Beispiel enthält die Prozessvariable vl_IPCom_Array die Größe des Array at_IPCom_Array und muss vom Quellprozess aufrechterhalten werden.


5. Dieses Beispiel führt dasselbe wie das vorige aus, liest das Array jedoch als Ganzes anstatt sequentiell die Elemente:

   GET PROCESS VARIABLE($vlProcess;at_IPCom_Array;$anArray)
   For($vlElem;1;Size of array($anArray))
      ` Führe dasselbe aus mit $anArray{$vlElem}
   End for

6. Dieses Beispiel liest die Instanzen der Variablen v1,v2,v3 des Quellprozesses und gibt ihre Werte in den Instanzen derselben Variablen für den aktuellen Prozess zurück:

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

7. Siehe Beispiel zum Befehl DRAG AND DROP PROPERTIES.

Referenz

CALL PROCESS, Drag and Drop, DRAG AND DROP PROPERTIES, Einführung in Prozesse, SET PROCESS VARIABLE, VARIABLE TO VARIABLE.

Anwendung des Befehls

Exchanging Data Between Processes


4D - Documentation   Français   English   German   4D Programmiersprache, Befehle nach Themen   4D Programmiersprache, Befehle alphabetisch   4D Programmiersprache, Konstanten nach Themen   Back   Previous   Next