Variablen und Umgebungsvariablen im MPR

Moderator: MVogt

Post Reply
User avatar
Theo_Gottwald
Posts: 367
Joined: 03. Oct 2009, 08:57
Location: Herrenstr.11 * 76706 Dettenheim
Contact:

Variablen und Umgebungsvariablen im MPR

Post by Theo_Gottwald » 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:

Code: Select all

$$ABC
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:

Code: Select all

VAR\$$ABC=1234-56768-0987
Man kann nun die Variable überall im Skript verwenden, wo sonst Text stehen würde, dann wird entsprechend die Seriennummer eingefügt.

Zum Beispiel:

Code: Select all

RST\$$ABC
Wenn man den Inhalt einer Variable kontrollieren will kann man sich eine Messagebox anzeigen lassen:

Code: Select all

MBX\ Der Inhalt ist:$$ABC
oder etwas geordneter, mit einem Zeilenvorschub:

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:
"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".
Aber um nur einfach den Wert einer Environment-Variable in eine MPR-Variable zu übertragen benötigen wir nur den EVG\-Befehl.

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
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:

Code: Select all

SRV\[Zahl oder Variable]
Also zum Beispiel:

Code: Select all

SRV\1
würde den Errorlevel 1 auslösen. So haben wir alle Möglichkeiten in unserem Skript.

Post Reply

Return to “Package Robot”

Who is online

Users browsing this forum: No registered users and 2 guests