Variablen und Umgebungsvariablen im MPR

Moderator: MVogt

Antworten
Benutzeravatar
Theo_Gottwald
Beiträge: 309
Registriert: 03. Okt 2009, 08:57
Wohnort: Herrenstr.11 * 76706 Dettenheim
Kontaktdaten:

Variablen und Umgebungsvariablen im MPR

Beitrag von 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: Alles auswählen

$$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: Alles auswählen

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: Alles auswählen

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

Code: Alles auswählen

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

Code: Alles auswählen

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: Alles auswählen

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: Alles auswählen

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: Alles auswählen

SRV\[Zahl oder Variable]
Also zum Beispiel:

Code: Alles auswählen

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

Antworten

Zurück zu „Package Robot“

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste