Variablen und Umgebungsvariablen im MPR
Posted: 31. Jan 2019, 09:11
Der MPR kennt das Konzept von Variablen.
1. Was sind Variablen
Variablen - das sind einfach Platzhalter, genauso wie die Umgebungsvariablen, die man vom Empirum/DOS her kennt.
Schreibt man in einem Skript den Name so einer Variablen, dann ist das wie der Name einer "Box mit inhalt".
Zur Laufzeit des Skriptes wird der Name der Box durch den Inhalt ersetzt.
2. Variablen im MPR
Während eine Environment Variable zum Beispiel "VM_SERIAL" heissen kann, sind Variablen im Package Robot immer wie folgt aufggebaut:
Also zweimal das "$" und dann drei Buchstaben. Groß und Kleinschreibung werden dabei nicht unterschieden.
Die Variablen: $$ABC und $$abc sind somit die gleiche Variable.
Wie weist man einer solchen Variable nun einen Wert, zum Beispiel eine Seriennummer, zu?
Ganz einfach:
Man kann nun die Variable überall im Skript verwenden, wo sonst Text stehen würde, dann wird entsprechend die Seriennummer eingefügt.
Zum Beispiel:
Wenn man den Inhalt einer Variable kontrollieren will kann man sich eine Messagebox anzeigen lassen:
oder etwas geordneter, mit einem Zeilenvorschub:
3. Umgebungs-Variablen / Environment Variablen
Nun wissen wir, wie man die MPR-Variablen verwendet. Aber wie kommen nun die Empirum/Environment-Variablen ins Spiel?
Dazu gibt es die Befehle:
Nehmen wir an, unsere Environment Variable wäre "VM_SERIAL" (danke für den Tipp, Hendrik!) und wir wollen den Wert in die MPR-Variable "$$VMS" übertragen um diese später im Skript zu verwenden.
Das geht so:
Nun können wir die $$VMS im Skript überall anstelle von Text - oder zusammen mit Text verwenden.
Zum Beispiel mit:
Wir können auch Text mit Variablen mischen. Anders als bei VB-Script benötigen wir dazu keine "" Gänsefüßchen oder Verkettungszeichen (&,+). Der Grund dafür ist die fixe Länge der MPR-Variablen. Dadurch weiss der Robot genau wo eine Variable anfängt und wo diese aufhört.
Und wie übergeben wir nun einen Returncode zurück ans Empirum?
Dazu dient der Befehl:
Also zum Beispiel:
würde den Errorlevel 1 auslösen. So haben wir alle Möglichkeiten in unserem Skript.
1. Was sind Variablen
Variablen - das sind einfach Platzhalter, genauso wie die Umgebungsvariablen, die man vom Empirum/DOS her kennt.
Schreibt man in einem Skript den Name so einer Variablen, dann ist das wie der Name einer "Box mit inhalt".
Zur Laufzeit des Skriptes wird der Name der Box durch den Inhalt ersetzt.
2. Variablen im MPR
Während eine Environment Variable zum Beispiel "VM_SERIAL" heissen kann, sind Variablen im Package Robot immer wie folgt aufggebaut:
Code: Select all
$$ABC
Die Variablen: $$ABC und $$abc sind somit die gleiche Variable.
Wie weist man einer solchen Variable nun einen Wert, zum Beispiel eine Seriennummer, zu?
Ganz einfach:
Code: Select all
VAR\$$ABC=1234-56768-0987
Zum Beispiel:
Code: Select all
RST\$$ABC
Code: Select all
MBX\ Der Inhalt ist:$$ABC
Code: Select all
MBX\ Der Inhalt ist:$crlf$$$ABC
3. Umgebungs-Variablen / Environment Variablen
Nun wissen wir, wie man die MPR-Variablen verwendet. Aber wie kommen nun die Empirum/Environment-Variablen ins Spiel?
Dazu gibt es die Befehle:
Aber um nur einfach den Wert einer Environment-Variable in eine MPR-Variable zu übertragen benötigen wir nur den EVG\-Befehl."EVG\[Daten]" für "EnvironmentVariableGet",
"EVS\" für "EnvironmentVariableSet",
"IEE\[Daten]" für "IfExistsEnvironmentvariable",
"EEE\" für "EndExistsEnvironmentvariable",
"ESE\[Daten]" für "EnvironmentStringExpand",
"ESG\" für "EnvironmentStringGet",
"ESS\" für "EnvironmentStringSet".
Nehmen wir an, unsere Environment Variable wäre "VM_SERIAL" (danke für den Tipp, Hendrik!) und wir wollen den Wert in die MPR-Variable "$$VMS" übertragen um diese später im Skript zu verwenden.
Das geht so:
Code: Select all
EVG\VM_SERIAL
VAR\$$VMS=$v1$
Nun können wir die $$VMS im Skript überall anstelle von Text - oder zusammen mit Text verwenden.
Zum Beispiel mit:
Code: Select all
SBT\10|Die Seriennummer ist: $$VMS
Und wie übergeben wir nun einen Returncode zurück ans Empirum?
Dazu dient der Befehl:
Code: Select all
SRV\[Zahl oder Variable]
Code: Select all
SRV\1