Dieser Abschnitt beschreibt, wie Sie Prozedurdateien benutzen.
Prozedurdateien (Namenserweiterung ncp) können Prozesse anstoßen, die auf dem Host, dem PC oder auf beiden ausgeführt werden. Sie können Prozedurdateien mit einem PC-Editor, einem Host-Editor oder im Lernmodus erstellen.
Sie können zum Beispiel eine Prozedurdatei erstellen, die den Prozess des Anmeldens bei einem Host-System automatisiert. Die erforderlichen Befehle stehen in der Prozedurdatei und werden beim Aufruf der Prozedurdatei ausgeführt.
:LOGON TYPE CR IF *SCREEN NE 'CP READ' GOTO ERROR TYPE 'LOGON' *USERID1 CR TYPE *PASSWORD1 CR SET #CNT1 0 :VM IF *SCREEN EQ 'VM/SP RELEASE 4' GOTO NAT INCR #CNT1 IF #CNT1 GT 10 GOTO ERROR PAUSE 200 GOTO VM :NAT TYPE 'NAT' CR GOTO FINI :ERROR MSG 'ANMELDEN NICHT MÖGLICH - VERSUCHEN SIE ES SPÄTER' :FINI EXIT
Beispielprozedurdateien werden während der Installation, wenn angegeben, auf Ihre Festplatte kopiert.
Es gibt verschiedene Möglichkeiten, eine Prozedurdatei auszuführen:
Wählen Sie die Prozedurdatei aus der Task-Liste.
Geben Sie den Namen der Prozedurdatei mit allen eventuell erforderlichen Parametern in der Befehlszeile ein.
Führen Sie eine Prozedurdatei aus, die den Aufruf einer weiteren Prozedurdatei enthält, siehe unten.
Drücken Sie die definierte Taste oder Tastenkombination.
Prozedurdatei aus einer anderen Prozedurdatei heraus ausführen
Öffnen Sie die Prozedurdatei, die den Aufruf einer weiteren Prozedurdatei enthalten soll.
Fügen Sie den Befehl EXECUTE
an
der gewünschten Stelle ein:
EXECUTE dateiname
Speichern Sie die Änderung.
Führen Sie die geänderte Prozedurdatei aus.
Sie können einer Prozedurdatei bis zu 9 externe Parameter übergeben. Diese können innerhalb der Prozedurdatei mit den entsprechenden Parametervariablen überprüft werden.
Der folgende Befehl führt die Prozedurdatei MEINPROG
mit
den Parametern 1234
, abc
und
AbC
aus:
MEINPROG 1234 abc 'AbC'
Siehe auch: Task-Parameter in der Übersicht der Objekteigenschaften.
Es gibt folgende Möglichkeiten, eine Host-Session in einer Prozedurdatei anzusprechen:
Direkt die Verbindung zu einer Host-Session herstellen
Benutzen Sie den Befehl CONNECT
:
CONNECT sessionname
Indirekt die Verbindung zur aktiven Host-Session
herstellen
Wenn Sie eine Prozedurdatei ausführen, während eine Host-Session
geöffnet ist.
Indirekt die Verbindung zur voreingestellten Host-Session
herstellen
Wenn Sie eine Prozedurdatei ausführen und keine Host-Session
geöffnet ist, wird bei der ersten Anweisung, die eine Host-Session anspricht,
die in den Benutzereigenschaften definierte
Standard-Session
geöffnet. Befehle, die geöffnete Sessions verlangen, sind z.B.
TYPE
und IF
*SCREEN
.
Die Ausführung einer Prozedurdatei wird in den folgenden Fällen abgebrochen oder beendet:
Wenn Sie die Befehlsschaltfläche
in einem Dialogfeld wählen, das durch die Prozedurdatei aufgerufen wurde.Wenn während der Ausführung der Prozedurdatei ein schwerwiegender Fehler auftritt, z.B. ein Syntaxfehler oder ein logischer Fehler.
Wenn die maximale Host-Antwortzeit überschritten wird.
Wenn der Befehl EXIT
oder
CANCEL
aus
der Prozedurdatei heraus aufgerufen werden.
Wenn die Prozedurdatei ordnungsgemäß beendet wird, d.h. wenn die letzte Anweisung ausgeführt wird.
Sie können die gerade aktive Prozedurdatei auch wie nachfolgend beschrieben abbrechen.
Prozedurdatei abbrechen
Wählen Sie aus dem Menü
den Befehl .Oder:
Wählen Sie die folgende Schaltfläche in der Symbolleiste:
Im Lernmodus werden alle Tastatureingaben, die Sie in einer Host-Session machen, in einer Prozedurdatei gespeichert. Wenn Sie die Prozedurdatei ausführen, werden alle darin enthaltenen Befehle automatisch ausgeführt.
Beispiel: Sie können den Lernmodus benutzen, um das Anmelden beim Host aufzuzeichnen.
Vorsicht:
Der Lernmodus erzeugt zwar Prozedurdateien, die erfolgreich
ausgeführt werden können, solange Sie jedoch keine Routinen für
Fehlerbehandlung und Ausnahmesituationen einfügen, sind sie gegebenenfalls
nicht robust.
Lernmodus einschalten
Öffnen Sie eine Host-Session.
Schalten Sie den Lernmodus mit der Tastenkombination STRG+L ein.
STRG+L ist die Vorgabe. Sie können eine andere Tastenkombination definieren.
Das Dialogfeld Lernmodus erscheint.
Wählen Sie die gewünschte Prozedurdatei aus dem Listenfeld oder geben Sie den Namen der (neuen) Prozedurdatei mit der Namenserweiterung ncp im Textfeld Dateiname ein.
Wenn Sie eine bestehende Prozedurdatei angeben, wird sie von der neuen Prozedur überschrieben.
Wählen Sie die Befehlsschaltfläche
.Der Lernmodus ist nun aktiv und jede Tastatureingabe wird aufgezeichnet.
Lernmodus ausschalten
Schalten Sie den Lernmodus mit der Tastenkombination STRG+L (Vorgabe) wieder aus.
Die Prozedurdatei enthält nun alle Ihre Eingaben. Sie können die Prozedurdatei mit einem ASCII-Editor verändern (z.B. um Prüfroutinen und logische Abfragen einzufügen).
Wenn Sie eine Prozedurdatei im Debug-Modus ausführen, werden zusätzliche Elemente im Terminal-Anwendungsfenster angezeigt:
Das Menü
. Dieses Menü steht nur zur Verfügung, wenn Sie eine Prozedurdatei im Debug-Modus ausführen. Es enthält dieselben Befehle wie die Debug-Symbolleiste.Die Debug-Symbolleiste. Diese Symbolleiste steht nur zur Verfügung, wenn Sie eine Prozedurdatei im Debug-Modus ausführen.
Sie können diese Symbolleiste auch in das Anwendungsfenster verschieben (z.B. unter die Menüleiste oder neben den Terminal-Emulationsbildschirm), so dass sie nicht mehr in einem Fenster angezeigt wird. Um das Andocken zu verhindern, drücken Sie beim Verschieben des Fensters die STRG-Taste.
Ein Prozedurfenster auf der linken Seite. Die Anzeige beginnt mit der ersten ausführbaren Quelltextzeile, welche durch einen Pfeil gekennzeichnet ist.
Ein Variablenfenster auf der rechten Seite. Es enthält eine Liste aller Variablen, die in der Prozedurdatei verwendet werden.
Sie können die Größe der einzelnen Fenster verändern, indem Sie einen Fensterrand mit der Maus an eine andere Position ziehen. Sie können diese Fenster auch als andockbare Fenster anzeigen.
Mit den folgenden Befehlen oder Schaltflächen in der Debug-Symbolleiste können Sie eine Prozedurdatei im Debug-Modus ausführen.
STRG+UMSCHALT+R | . | |
STRG+UMSCHALT+S | . | |
STRG+UMSCHALT+A | . | |
STRG+UMSCHALT+P | . | |
STRG+UMSCHALT+B | . | |
STRG+UMSCHALT+E | Antwortzeit setzen erscheint und Sie können die gewünschte
Verzögerung in Millisekunden vor der Ausführung der nächsten Anweisung angeben.
Siehe die Systemvariable ECHO .
|
. Das Dialogfeld
|
STRG+UMSCHALT+T | . |
Prozedurdatei im Debug-Modus ausführen
Wählen Sie aus dem Menü
den Befehl .Das Dialogfeld Task oder Prozedur wählen erscheint.
Wählen Sie das Optionsfeld Prozeduren.
Markieren Sie die gewünschte Prozedurdatei.
Wählen Sie die Befehlsschaltfläche
.Überprüfen Sie die Prozedurdatei mit Hilfe des Menüs
oder der Debug-Symbolleiste.Wenn Sie fertig sind, beenden Sie den Debug-Modus mit dem entsprechenden Befehl.
Es gelten folgende Regeln:
Eine Zeile in einer Prozedurdatei darf bis zu 127 Zeichen enthalten.
Eine Zeile darf nur einen Befehl und die dazugehörenden Operanden enthalten.
Ausnahme: die Befehle IF
,
IFNOT
und WAITFOR
.
Anweisungen dürfen aus Gründen der Lesbarkeit eingerückt werden.
Ausnahme: Sprungmarken und Kommentarzeilen müssen in der ersten Spalte beginnen.
Elemente wie Sprungmarken und Befehle werden nicht auf Groß- und Kleinschreibung geprüft. Zeichenketten können geprüft werden.
Der Quellcode darf nicht größer sein als 64 KBytes, einschließlich Kommentaren. Wenn diese Größe überschritten wird, erscheint eine Fehlermeldung und die Prozedur wird abgebrochen.
Eine Zeile kann aus folgendem bestehen:
Eine Zeichenkette muss in Anführungszeichen stehen, wenn eine Prüfung auf Groß- und Kleinschreibung erfolgen soll oder wenn sie Leerzeichen enthält. Sie können doppelte und einfache Anführungszeichen benutzen, müssen diese aber konsistent verwenden. Zum Beispiel:
'Gültige Zeichenkette in einfachen Anführungszeichen' 'Diese Zeichenkette ist "ebenfalls" gültig' "Gültige Zeichenkette in doppelten Anführungszeichen" "Diese Zeichenkette ist 'ebenfalls' gültig" "Diese Zeichenkette ist ungültig, da die Anführungszeichen einander nicht entsprechen'
Entire Connection erwartet, dass die Zeichenkette zum Windows-Zeichensatz gehört (ANSI).
Eine Sprungmarke ist ein Verzweigungspunkt in einer Prozedurdatei. Der Name einer Sprungmarke beginnt immer mit einem Doppelpunkt und kann maximal 127 Zeichen lang sein. Eine nicht-eindeutige Sprungmarke erzeugt eine Fehlermeldung.
Beispiele für Sprungmarken:
:START :LOGON-ERROR :QUIT
$TIMEOUT
und $ESC
sind Sprungmarken mit
besonderer Bedeutung (siehe unten).
$TIMEOUT
Wenn die Sprungmarke $TIMEOUT
in einer Prozedurdatei
benutzt wird und eine Zeitüberschreitung auftritt (z.B. wenn der Host nicht in
der definierten Zeitspanne antwortet), wird die Steuerung automatisch an die
Anweisung übergeben, die nach der Sprungmarke steht.
Die Systemvariable RESPONSE
gibt an, wie lange Entire Connection auf eine Antwort vom Host wartet, bevor
die Verarbeitung mit der nächsten Anweisung nach der Sprungmarke fortgesetzt
wird.
$ESC
Wenn die Sprungmarke $ESC
in einer Prozedurdatei benutzt
wird und aus dem Menü der Befehl
(oder die entsprechende
Schaltfläche in der Symbolleiste) gewählt wird, wird die Steuerung automatisch
an die Anweisung übergeben, die nach der Sprungmarke steht.
Wenn die Sprungmarke $ESC
in einer Prozedurdatei nicht
benutzt wird und der Befehl
gewählt wird, wird die Prozedurdatei abgebrochen.
Wenn eine Prozedurdatei einen Task ausführt, der abgebrochen werden kann, gilt Folgendes:
Wenn der Task abgebrochen wird, wird die Steuerung wird an die Prozedurdatei zurückgegeben.
Wenn anschließend der Befehl $ESC
übergeben.
Eine Kommentarzeile beginnt mit einem Stern (*) in der ersten Spalte. Zum Beispiel:
* Dies sind Beispiele für Kommentarzeilen * * Auch die Zeile über dieser ist ein Beispiel für eine Kommentarzeile
Ein Kommentar kann auch hinter einer Anweisung stehen. In diesem Fall beginnt er mit einem Schrägstrich, gefolgt von einem Stern (/*). Zum Beispiel:
SET LOGON NO /* dies ist ein Kommentar hinter einer Anweisung :ERROR /* dies ist ein Kommentar hinter einer Sprungmarke
Leerzeilen dürfen überall in einer Prozedurdatei benutzt werden. Sie werden von Entire Connection ignoriert.
Die Befehle, die in Prozedurdateien verwendet werden können, können in folgende Kategorien aufgeteilt werden:
Mit den folgenden Befehlen können Sie Host-Sessions aus einer Prozedurdatei heraus verwalten.
Befehl | Beschreibung |
---|---|
CONNECT
|
Öffnet eine Host-Session. |
DISCONNECT
|
Schließt eine Host-Session. |
EMULATE
|
Wechselt zum Terminal-Emulationsmodus. |
QA
|
Zeichnet Sessions, Terminal-Emulationsbildschirme und Benutzereingaben im Entire Test Client Format auf Festplatte auf. |
REC_BUFF
|
Zeichnet Daten unübersetzt vom Terminal-Emulations-Buffer auf Festplatte auf. |
REC_SCR
|
Zeichnet Terminal-Emulationsbildschirme auf Festplatte auf. |
REC_XFER
|
Zeichnet die Datentransfer-Buffer auf Festplatte auf. |
REVEAL
|
Zeigt die Feldattribute der 3270er Emulation und den Wert des ASCII-Zeichens an der aktuellen Cursor-Position an. |
RSPMONITOR
|
Schaltet die Antwortzeit-Überwachung für die Terminal-Emulation ein und aus. |
SUSPEND
|
Deaktiviert die aktuelle Host-Session. |
TYPE
|
Sendet simulierte Tastatureingaben an den Host oder PC. |
Wichtig:
Die Befehle REC_BUFF
und
REC_XFER
dienen der Problemlösung bei Entire
Connection und sollten nur unter Anleitung Ihres Technischen Supports benutzt
werden.
Mit den folgenden Befehlen können Sie die Verarbeitungslogik in der Prozedurdatei festlegen. In Abhängigkeit von den übermittelten Host-Daten können z.B. verschiedene Befehle benutzt werden.
Befehl | Beschreibung |
---|---|
DECR
|
Zieht 1 von den globalen und lokalen Zählervariablen oder Bildschirmpositionsvariablen ab. |
ELAPSETIME
|
Berechnet die Differenz in Sekunden zwischen zwei Datums- und Zeitangaben. |
EXIT
|
Verlässt eine Prozedurdatei und kehrt zur vorherigen Prozedurdatei oder zu Entire Connection zurück. |
GOTO
|
Verzweigt zu einer anderen Stelle in der Prozedurdatei. |
IF/IFNOT
|
Überprüft eine Bedingung. |
INCR
|
Fügt 1 zu den globalen und lokalen Zählervariablen oder Bildschirmpositionsvariablen hinzu. |
INPUT
|
Fordert den Benutzer zur Eingabe auf. |
LEARN
|
Erstellt eine Prozedurdatei im Lernmodus. |
PAUSE
|
Hält die Verarbeitung für eine bestimmte Zeitspanne an. |
PERFORM
|
Verzweigt zu einer anderen Stelle in der Prozedurdatei und führt die dort definierten Anweisungen aus. |
RESET
|
Setzt lokale oder globale Variablen auf Null oder Leerzeichen zurück. |
RETURN
|
Setzt die Verarbeitung mit der Anweisung fort, die direkt
nach dem Befehl PERFORM steht.
|
SET
|
Weist einer lokalen Variablen, globalen Variablen oder Systemvariablen einen Wert zu. |
SHIFT
|
Verschiebt den Inhalt der globalen oder lokalen
Parametervariablen von PARM2 bis
PARM9 nach PARM1 bis
PARM8 , damit PARM9
der Wert Null zugewiesen werden kann.
|
SLEEP
|
Hält die Verarbeitung einer Prozedurdatei für eine bestimmte Zeitspanne an. |
TOGGLE
|
Schaltet zwischen zwei möglichen Zuständen einer Systemvariablen hin und her. |
WAIT
|
Hält die Verarbeitung einer Prozedurdatei solange an, bis der Benutzer eine Taste drückt. |
WAITFOR
|
Prüft eine Bedingung auf dem nächsten vom Host gesendeten Terminal-Emulationsbildschirm. |
WAITM
|
Hält die Verarbeitung einer Prozedurdatei für eine bestimmte Zeitspanne an. |
WAITUNTIL
|
Hält die Verarbeitung einer Prozedurdatei bis zu einem definierten Zeitpunkt an. |
Mit den folgenden Befehlen können Sie aus Dateien lesen und in Dateien schreiben.
Befehl | Beschreibung |
---|---|
CLOSE
|
Schließt eine Datei. |
OPEN-I
|
Öffnet eine Datei, aus der Daten gelesen werden (Eingabedatei). |
OPEN-O
|
Öffnet eine Datei, in die Daten geschrieben werden (Ausgabedatei). |
READ
|
Liest Daten aus einer Eingabedatei. |
WRITE
|
Schreibt Daten in eine Ausgabedatei. |
Mit den folgenden Befehlen können Sie weitere Prozedurdateien und Tasks planen oder ausführen. Sie können komplexe Operationen in kleinere, separate Prozedurdateien aufteilen oder eine Reihe von Operationen ausführen, die auf externen Variablen basieren.
Befehl | Beschreibung |
---|---|
EXECTASK
|
Führt einen unter Entire Connection definierten Task aus. |
EXECUTE
|
Führt eine Prozedurdatei aus. |
SCHEDTOP
|
Plant die Ausführung von weiteren Tasks oder Prozedurdateien auf der Grundlage von "first-in-first-out" (FIFO). |
SCHEDULE
|
Plant die Ausführung von weiteren Tasks oder Prozedurdateien auf der Grundlage von "last-in-first-out" (LIFO). |
Mit den folgenden Befehlen können Sie Betriebssystemfunktionen aus einer Prozedurdatei heraus aufrufen.
Beispiel: Sie können mit einer Prozedurdatei regelmäßig Daten vom Host herunterladen. Damit die Daten in eine PC-Datei geschrieben werden können, muss die Prozedurdatei die PC-Datei, die beim letzten Herunterladen angelegt wurde, umbenennen oder löschen. Sonst wären vor jeder Ausführung der Prozedurdatei manuelle Änderungen erforderlich.
Befehl | Beschreibung |
---|---|
CD
|
Wechselt das aktuelle Verzeichnis auf dem aktuellen Laufwerk. |
CHDRIVE
|
Wechselt das aktuelle Laufwerk. |
CHMOD
|
Ändert die Dateiattribute. |
DOS
|
Führt einen DOS-Befehl aus. |
DOSDIR
|
Zeigt Verzeichnis-Informationen an. |
ERASE
|
Löscht eine Datei. |
MD
|
Erstellt ein Verzeichnis. |
OS
|
Identisch mit dem Befehl DOS. |
POPDIR
|
Kehrt an die Position in der Verzeichnishierarchie zurück,
die mit dem Befehl PUSHDIR gespeichert wurde.
|
PUSHDIR
|
Speichert die aktuelle Position in der Verzeichnishierarchie. |
RD
|
Löscht ein Verzeichnis. |
RENAME
|
Benennt eine Datei um oder verschiebt eine Datei. |
Die folgenden Befehle stehen in einer Prozedurdatei zur Verfügung:
Befehl | Beschreibung |
---|---|
BEEP
|
Lässt den Signalton des PC ertönen. |
CANCEL
|
Bricht die Verarbeitung einer Prozedurdatei ab. |
LOG
|
Schreibt eine Meldung in die Log-Datei. |
MSG
|
Gibt eine Meldung aus. |
QUIT
|
Schließt ein Terminal von Entire Connection. |
Prozedurdateien können Variablen enthalten, deren Werte vom System oder Benutzer bestimmt werden.
Bei komplexen Operationen mit verschachtelten Prozedurdateien können globale Variablen definiert werden, die von mehreren Prozedurdateien benutzt werden. Eine globale Variable kann z.B. einen Return-Code von einer Prozedurdatei an eine andere weitergeben. Damit kann verhindert werden, dass weitere Programmschritte ausgeführt werden, wenn die vorherige Prozedurdatei nicht erfolgreich abgeschlossen wurde.