Prozedurdateien

Dieser Abschnitt beschreibt, wie Sie Prozedurdateien benutzen.


Was ist eine Prozedurdatei?

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.

Beispiel - Anmelden bei einem VM-Großrechnersystem:

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

Prozedurdatei ausführen

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.

Beginn der Anweisungsliste Prozedurdatei aus einer anderen Prozedurdatei heraus ausführen

  1. Öffnen Sie die Prozedurdatei, die den Aufruf einer weiteren Prozedurdatei enthalten soll.

  2. Fügen Sie den Befehl EXECUTE an der gewünschten Stelle ein:

    EXECUTE dateiname
  3. Speichern Sie die Änderung.

  4. Führen Sie die geänderte Prozedurdatei aus.

Externe Parameter

Sie können einer Prozedurdatei bis zu 9 externe Parameter übergeben. Diese können innerhalb der Prozedurdatei mit den entsprechenden Parametervariablen überprüft werden.

Beispiel:

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.

Host-Session in einer Prozedurdatei ansprechen

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.

Prozedurdatei abbrechen oder beenden

Die Ausführung einer Prozedurdatei wird in den folgenden Fällen abgebrochen oder beendet:

  • Wenn Sie die Befehlsschaltfläche Abbrechen 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.

Beginn der Anweisungsliste Prozedurdatei abbrechen

  • Wählen Sie aus dem Menü Dienste den Befehl Prozedur abbrechen.

    Oder:
    Wählen Sie die folgende Schaltfläche in der Symbolleiste:

    Prozedur abbrechen

Prozedurdatei im Lernmodus erstellen

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.

Beginn der Anweisungsliste Lernmodus einschalten 

  1. Öffnen Sie eine Host-Session.

  2. 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.

  3. 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.

  4. Wählen Sie die Befehlsschaltfläche OK.

    Der Lernmodus ist nun aktiv und jede Tastatureingabe wird aufgezeichnet.

Beginn der Anweisungsliste 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).

Prozedurdatei im Debug-Modus ausführen

Wenn Sie eine Prozedurdatei im Debug-Modus ausführen, werden zusätzliche Elemente im Terminal-Anwendungsfenster angezeigt:

  • Das Menü Debug. 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.

    Debug-Symbolleiste

  • Ein Prozedurfenster auf der linken Seite. Die Anzeige beginnt mit der ersten ausführbaren Quelltextzeile, welche durch einen Pfeil gekennzeichnet ist.

    Prozedurfenster

  • Ein Variablenfenster auf der rechten Seite. Es enthält eine Liste aller Variablen, die in der Prozedurdatei verwendet werden.

    Variablenfenster

    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.

Starten

STRG+UMSCHALT+R Prozedur starten.

Schrittweise durchlaufen

STRG+UMSCHALT+S Prozedur schrittweise durchlaufen.

Animieren

STRG+UMSCHALT+A Prozedur animieren.

Haltepunkt

STRG+UMSCHALT+P Haltepunkt ein- und ausschalten.

Unterbrechen

STRG+UMSCHALT+B Prozedur unterbrechen.

Verzögerung

STRG+UMSCHALT+E Verzögerung setzen. Das Dialogfeld 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.

Beenden

STRG+UMSCHALT+T Debug-Modus beenden.

Beginn der Anweisungsliste Prozedurdatei im Debug-Modus ausführen

  1. Wählen Sie aus dem Menü Dienste den Befehl Task-Liste.

    Das Dialogfeld Task oder Prozedur wählen erscheint.

  2. Wählen Sie das Optionsfeld Prozeduren.

  3. Markieren Sie die gewünschte Prozedurdatei.

  4. Wählen Sie die Befehlsschaltfläche Debug.

  5. Überprüfen Sie die Prozedurdatei mit Hilfe des Menüs Debug oder der Debug-Symbolleiste.

  6. Wenn Sie fertig sind, beenden Sie den Debug-Modus mit dem entsprechenden Befehl.

Konventionen

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:

Zeichenkette

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).

Sprungmarke

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ü Dienste der Befehl Prozedur abbrechen (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 Prozedur abbrechen 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 Prozedur abbrechen gewählt wird, wird die Steuerung an die Sprungmarke $ESC übergeben.

Kommentar

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

Leerzeile

Leerzeilen dürfen überall in einer Prozedurdatei benutzt werden. Sie werden von Entire Connection ignoriert.

Befehlskategorien

Die Befehle, die in Prozedurdateien verwendet werden können, können in folgende Kategorien aufgeteilt werden:

Host-Kommunikation

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.

Verarbeitung

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.

Eingabe/Ausgabe

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.

Task-Verwaltung

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).

Betriebssystemfunktionen

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.

Umgebungssteuerung

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.

Variablen in Prozedurdateien

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.