Prozedurdateien

#### Search Results

Search

# Prozedurdateien

Dieser Abschnitt beschreibt, wie Sie Prozedurdateien benutzen.

- Was ist eine Prozedurdatei?

- Prozedurdatei ausführen

- Externe Parameter

- Host-Session in einer Prozedurdatei ansprechen

- Prozedurdatei abbrechen oder beenden

- Prozedurdatei im Lernmodus erstellen

- Prozedurdatei im Debug-Modus ausführen

- Konventionen

- Befehlskategorien

- Variablen in Prozedurdateien

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

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.

Prozedurdatei abbrechen

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

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

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

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.

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.

- 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 | Prozedur starten.
| STRG+UMSCHALT+S | Prozedur schrittweise durchlaufen.
| STRG+UMSCHALT+A | Prozedur animieren.
| STRG+UMSCHALT+P | Haltepunkt ein- und ausschalten.
| STRG+UMSCHALT+B | Prozedur unterbrechen.
| 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`.
| STRG+UMSCHALT+T | Debug-Modus beenden.

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

- Sprungmarke

- Kommentar

- Leerzeile

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

- Verarbeitung

- Eingabe/Ausgabe

- Task-Verwaltung

- Betriebssystemfunktionen

- Umgebungssteuerung

### 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.
`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.

### On this page

- Was ist eine Prozedurdatei?
- Prozedurdatei ausführen
- Externe Parameter
- Host-Session in einer Prozedurdatei ansprechen
- Prozedurdatei abbrechen oder beenden
- Prozedurdatei im Lernmodus erstellen
- Prozedurdatei im Debug-Modus ausführen
- Konventionen
- Befehlskategorien
- Variablen in Prozedurdateien