Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

EXLST - Exit-Adressenliste anlegen

Makrotyp: 0-Typ

Mit dem EXLST-Makroaufruf erstellt der Anwender eine Liste von symbolischen Adressen, die auf Programmroutinen verweisen, in denen Ereignisse, die zur Unterbrechung der normalen Verarbeitung führten, ausgewertet und bearbeitet werden können.

Für jedes Ereignis gibt es einen speziellen Operanden im EXLST-Makro. Ist zu diesem Operanden eine symbolische Adresse im Makroaufruf angegeben, kann das DVS bei Auftreten des Ereignisses an die entsprechende Programmroutine verzweigen. Wird der Operand nicht oder nur mit einem Nullstring versorgt, führt das Auftreten des Ereignisses zum Abbruch – es sei denn, über den Operanden COMMON wurde eine allgemein gültige Fehlerbehandlungs-Routine adressiert.

Die trifft jedoch nicht für die Operanden zu, mit denen bei der OPEN-Verarbeitung der FCB verändert werden kann oder mit denen der Benutzer bei OPEN- oder CLOSE-Verarbeitung eigene Bandkennsätze schreibt. Sind diese Operanden im EXLST-Makroaufruf genannt, verzweigt das DVS automatisch zu den so adressierten Programmroutinen.

Format

Operation

Operanden

EXLST

[PARMOD = 24 / 31]

[,CLOSER = NO / relaus]

[,CLOSPOS = NO / relaus]

[,COMMON = relaus]

[,DLOCK = NO / relaus]

[,DUPEKY = NO / relaus]

[,EOFADDR = NO / relaus]

[,ERRADDR = NO / relaus]

[,ERROPT = NO / SKIP / IGNORE / relaus]

[,ISPERR = NO / relaus]

[,LOCK = NO / relaus]

[,NODEV = NO / relaus]

[,NOFIND = NO / relaus]

[,NOSPACE = NO / relaus]

[,OPENC = NO / relaus]

[,OPENER = NO / relaus]

[,OPENX = NO / relaus]

[,OPENZ = NO / relaus]

[,PASSER = NO / relaus]

[,PGLOCK = NO / relaus]

[,SEQCHK = NO / relaus]

[,USERERR = NO / relaus]

[,WLRERR = NO / relaus]

[,EOVCTRL = NO / relaus]

[,LABEND = NO / relaus1]

[,LABEOV = NO / relaus]

[,LABERR = NO / relaus]

[,LABGN = NO / relaus]

[,OPENV = NO / relaus]

Operandenbeschreibung

relaus

symbolische Adresse im Assembler-Programm

PARMOD

Gibt den für den FCB geltenden Generierungsmodus für den Makroaufruf an.

Voreinstellung: 

der durch den Makro GPARMOD oder den Assembler voreingestellte Wert für den Generierungsmodus

= 24
Der Makroaufruf wird mit der Expansion für die 24-Bit-Schnittstelle aufgelöst. Das Objekt ist nur im 24-Bit-Adressierungsmodus ablauffähig, d.h. im 16-MB-Adressraum.

= 31
Der Makroaufruf wird adressierungsmodus-unabhängig generiert, das Objekt ist im 2-GB-Adressraum ablauffähig.

CLOSER

Bei der CLOSE-Verarbeitung trat ein Fehler auf. Der Fehlerschlüssel im FCB-Feld ID1ECB beschreibt den Zustand genauer.

CLOSPOS

Für Band-Eingabedateien mit Nichtstandardkennsätzen:
der Anwender kann ein Band, für das ein CLOSE-Makro mit REPOS oder LEAVE aufgerufen wurde, mit BTAM-Makroaufrufen positionieren. Die CLOSE-Verarbeitung wird nach Beendigung der CLOSPOS-Routine fortgesetzt. Wird der CLOSPOS-Ausgang nicht definiert, führt das System die Positionierung durch.

COMMON

Die Steuerung geht an diese Adresse, wenn für den aufgetretenen Fehler kein spezieller Ausgang angegeben wurde.

Ausnahmen:

CLOSPOS

LABEOV

OPENC

OPENZ

EOVCTRL

LABERR

OPENV

WLRERR

LABEND

LABGN

OPENX


Wenn die Verarbeitung durch ein Ereignis unterbrochen wird, für das kein EXLST-Operand angegeben wurde, geht die Steuerung an die mit COMMON adressierte Routine.
Ausnahmen bilden die o.g. Operanden, die einen Eingriff in die Verarbeitung „erwarten“.

Siehe auch Tabellen „Fehlerausgänge“ am Schluss der EXLST-Beschreibung.

DLOCK

Nur für UPAM-Verarbeitung von Plattendateien:
Deadlock: für einen Auftrag, der bereits Sperren hält, wurden weitere Sperren angefordert, die nicht verfügbar sind.

Der Deadlock-Ausgang wird nach der im FCB-Operanden PAMTOUT angegebenen Wartezeit angesprungen. In der DLOCK-Routine müssen zunächst die „alten“ Sperren freigegeben werden, bevor erneut Sperren angefordert werden können – andernfalls wird das Programm abgebrochen.

DUPEKY

Nur für ISAM:
es wurde versucht, einen Satz in die ISAM-Datei zu schreiben, dessen Schlüssel bereits vorhanden ist, und zwar

  • mit dem Makro INSRT, der auch zusammen mit DUPEKY=YES in FILE oder FCB nicht für das Schreiben von Sätzen mit gleichen Schlüsseln verwendet werden kann, oder

  • mit dem Makroaufruf PUT, ohne dass vorher DUPEKY=YES definiert wurde.

EOFADDR

Nur für Eingabedateien:
beim Versuch, einen Satz zu lesen, wurde das Dateiende erreicht.

Nach Prüfung aller Kennsätze aktiviert das DVS die EOFADDR-Routine, in der der Anwender die Datei schließen kann.

EOVCTRL

Um nach dem Bereitstellen eines Folgebandes die Kontrolle vom System an den Benutzer zu übertragen, ist dieser Ausgang anzugeben.

Für Eingabedateien:
wird nur bei Mehrspuldateien für jede Folgespule aktiviert, nachdem das System die Standard-Anfangskennsätze des Folgebandes und der Benutzer – falls erforderlich – im LABGN-Ausgang seine Kennsätze geprüft hat.

Bei Ausgabedateien:
Dieser Ausgang wird nur bei Mehrbanddateien und da auch nur bei den Folgebändern aktiviert, nachdem das System das Prüfen und Schreiben der Standard-Anfangskennsätze (VOL, HDR) beendet hat.

Dieser Ausgang ist mit dem Makro EXRTN zu verlassen.

ERRADDR

Während der Dateiverarbeitung trat ein Hardwarefehler auf oder eine Ein-/ Ausgabe wurde abnormal beendet. Status-Byte, Standard-Geräte-Byte, Ablaufteil-Markierungsbyte sowie die 3 Fehler-Bytes werden im FCB gespeichert. Bei ISAM-Verarbeitung können ISAM-Blöcke inkonsistent sein (SAM verwendet die Ausgänge: EOFADDR, ERROPT, USERERR)

ERROPT

Für SAM-Eingabedateien:
beim Lesen eines Blocks trat ein Parity-Fehler auf: das DVS führt mehrere Leseversuche durch, bevor es den Block als fehlerhaft ausweist und versucht, eine ERROPT-Routine zu aktivieren. Ist kein ERROPT-Fehlerausgang vorgesehen, wird das Programm beendet.

Im EXLST-Makroaufruf kann der Programmierer bestimmen. ob er einen Lesefehler ignorieren will, den fehlerhaften Block übergehen will oder eine Fehlerbehandlung in einer ERROPT-Routine durchführen will.

Für SAM-Ausgabedateien:
ERROPT ist nur dann relevant, wenn kein WLRERR-Ausgang definiert wurde und Sätze falscher Länge auftreten.

= SKIP
Der fehlerhafte Block soll übergangen werden, d.h.: es werden dem Programm keine Sätze dieses Blocks bereitgestellt. Der nächste Block wird gelesen, und die Verarbeitung wird mit dem ersten Satz dieses Folgeblocks fortgesetzt.

= IGNORE
Der Fehler soll ignoriert werden, die Sätze des fehlerhaften Blocks werden dem Programm zur Verarbeitung zur Verfügung gestellt.

= relaus
symbolische Adresse einer Anwenderroutine – in dieser Routine darf kein GET-Makro aufgerufen werden für die Datei, zu der der fehlerhafte Block gehört. Die Routine kann das Register 0 auswerten, das die Adresse des fehlerhaften Blocks enthält und ein Kennzeichen für die weitere Verarbeitung setzen (im Register 0). Die Verarbeitung wird mit dem Makroaufruf EXRTN fortgesetzt.

Enthält das Mehrzweckregister 0 den Wert X'00000001', wird der aktuelle Block übergangen (entspricht SKIP) und die Verarbeitung ab dem nächsten Block fortgesetzt. Jede andere Anzeige bedeutet, dass der Block so verarbeitet werden soll, als ob kein Fehler aufgetreten wäre.

ISPERR

Für ISAM-Dateien mit Index- und Datenteil auf verschiedenen privaten Platten:
Für die Erweiterung des Indexteils steht nicht genügend Platz zur Verfügung (bei diesen ISAM-Dateien kann der Speicherplatz separat für den Index- oder für den Datenteil erweitert werden (vgl. FILE-Makro)).

LABEND

Für Banddateien:
Zum Prüfen/Erstellen von Benutzer-Dateiendekennsätzen; wird dieser Ausgang nicht verwendet, ignoriert das System alle Benutzerkennsätze.

Bei Eingabedateien:
Nach dem Erkennen des Dateiendes aktiviert das System den LABEND-Ausgang, bevor der EOFADDR-Ausgang aktiviert wird. Der Benutzer kann in dieser Routine seine Dateiendekennsätze (UTL) prüfen. Das System stellt ihm im Register 0 die Adresse eines UTL zur Verfügung. Für Eingabedateien mit Nichtstandardkennsätzen erhält der Benutzer über den LABEND-Ausgang die Möglichkeit, seine Kennsätze, falls vorhanden, bei Dateiende einzulesen und zu prüfen.

Bei Ausgabedateien:
Der LABEND-Ausgang wird nach dem Schließen der Datei durch den Benutzer und dem Schreiben der Benutzer-Endekennsätze (UTL) aktiviert. Das System stellt in Register 0 eine Adresse zur Verfügung, an der der Benutzer seine UTL-Kennsätze bereitstellen muss. Für Ausgabedateien mit Nichtstandardkennsätzen erhält der Benutzer, nachdem er den CLOSE-Makroaufruf angestoßen hat, hier die Kontrolle zum Schreiben der Nichtstandardkennsätze.

Nachdem die Kontrolle wieder an das System zurückgegeben wurde (LBRET-Makroaufruf), wird die CLOSE-Verarbeitung abgeschlossen.

LABEOV

Für Banddateien:
Zum Prüfen/Erstellen von Benutzer-Bandendekennsätzen.

Bei Eingabedateien:
wird der LABEOV-Ausgang aktiviert, nachdem das Bandende erkannt und die Endekennsätze geschrieben wurden. Hier kann der Benutzer die Benutzerkennsätze (UTL) prüfen. Im Register 0 wird ihm vom System die Adresse eines UTL zur Verfügung gestellt. Bei Eingabedateien mit Nichtstandardkennsätzen kann der Benutzer über diesen Ausgang seine Kennsätze hinter seiner Datei, falls vorhanden, einlesen und prüfen.

Bei Ausgabedateien:
wird dieser Ausgang aktiviert, wenn das System Bandende erkannt hat (oder ein FEOV-Makro aufgerufen wurde) und die Bandendekennsätze (EOV) geschrieben sind. Das System stellt in Register 0 eine Adresse zur Verfügung, an der der Benutzer seine Endekennsätze (UTL) bereitstellen muss. Für Ausgabedateien mit Nichtstandardkennsätzen erhält der Benutzer über diesen Ausgang die Kontrolle vom System entweder nach Erkennen von Bandende, oder wenn er einen FEOV-Makroaufruf abgesetzt hat, um seine Kennsätze zu schreiben.

Bei BTAM-Verarbeitung muss der Benutzer nach Erkennen von Bandende im Feld ERRBYTE einen FEOV-Makro aufrufen. SAM leitet automatisch die EOV-Bearbeitung ein. Nachdem die Kontrolle dem System zurückgegeben wurde (LBRET-Makroaufruf), kann der Bandwechsel durchgeführt werden.

LABERR

Für Banddateien:
für Dateien mit Standardkennsätzen verzweigt das System zu diesem Ausgang, wenn während der Bandende-Verarbeitung ein Fehler aufgetreten ist. Folgender Fehler-Code wird in das ID1ECB-Feld des FCB übertragen:

X'0DE9'

Anstatt der erwarteten EOV-/EOF-Kennsätze wurde eine Bandmarke gelesen.

X'0DEA'

Es wurde nicht der erwartete EOV-/EOF-Kennsatz gelesen.

X'0DEB'

Bandende (Doppel-Abschnittsmarke) wurde erkannt, ohne dass die erwarteten EOV/EOF-Kennsätze gelesen wurden.

X'0DEC'

Prüfung des Blockzählers war negativ.

Der Benutzer muss die Kontrolle mit dem EXRTN-Makroaufruf wieder an das System zurückgeben.

Das Register 0 muss einen der folgenden Werte enthalten, um dem System mitzuteilen, wie es weiterarbeiten soll:

X'00'

Bandwechsel durchführen, als ob die richtigen EOV/EOF-Kennsätze gelesen worden wären

X'01'

Prozess mit Fehler beenden

X'02'

Dateiende-Verarbeitung durchführen

Wird der LABERR-Ausgang nicht verwendet und tritt einer der oben beschriebenen Zustände auf, so gibt das System dem Benutzer eine Fehlermeldung. Er kann entweder das Programm fortsetzen oder eine CLOSE-Routine anstoßen.

Wird dieser Ausgang nicht angegeben, ignoriert das System Benutzerkennsätze bei Eingabedateien, und es können für Ausgabedateien keine erstellt werden!

LABGN

Für Banddateien:

Bei Eingabedateien:
wird der LABGN-Ausgang nach Prüfung der Standardanfangskennsätze (VOL, HDR) aktiviert; in der LABGN-Routine können die Benutzer-Anfangskennsätze (UHL) geprüft werden. Die Adresse des Kennsatzes im Puffer wird im Register 0 an das Benutzerprogramm übergeben. Enthält die Datei Nichtstandardkennsätze, kann der Benutzer in der LABGN-Routine seine Kennsätze einlesen und prüfen.

Bei Ausgabedateien, nach OPEN-Verarbeitung, und nach Prüfen und Schreiben der Standard-Anfangskennsätze:
Im Register 0 stellt das System dem Benutzer eine Adresse zur Verfügung, an der er seine Kennsätze (UHL) bereitstellen muss. Soll die Datei Nichtstandardkennsätze erhalten, können sie in der LABGN-Routine erstellt werden.

Wird die Kontrolle wieder an das System zurückgegeben, (LBRET-Makroaufruf), muss das Band bei OPEN EXTEND hinter den letzten Datenblock bzw. bei OPEN REVERSE vor den ersten Datenblock positioniert sein. Gilt TPMARK = YES, wird das Band bei OPEN INPUT um eine Abschnittsmarke zurückgespult, bei OPEN REVERSE um eine Abschnittsmarke vorgespult. Bei TPMARK=NO setzt das System voraus, dass das Band vor den ersten Datenblock positioniert ist.

LOCK

Die Datei ist gesperrt; sie kann nicht eröffnet werden, weil sie bereits von einem anderen Auftrag eröffnet wurde und die OPEN-Modi unverträglich sind: mindestens einer der Aufträge hat einen OPEN-Modus not equal INPUT gewählt.

NODEV

Es ist kein Gerät frei, auf dem der private Datenträger bereitgestellt werden kann, oder der private Datenträger wird z.Z. von einem anderen Anwender genutzt (vorherige Gerätereservierung empfohlen!).

NOFIND

Für ISAM:
die Aktionmakroaufrufe GETKY, ELIM (mit KEY-Angabe) oder GETFL konnten nicht erfolgreich ausgeführt werden:

  • GETKY / ELIM – die Datei enthält keinen Satz mit dem angegebenen Schlüssel

  • GETFL – der definierte Dateibereich enthält keinen Satz, der die Flag-Bedingung erfüllt.

NOSPACE

Für Plattendateien:
der benötigte Speicherplatz kann nicht bereitgestellt werden.

OPENC

Die Datei war bei einer vorhergehenden Bearbeitung als Ausgabedatei eröffnet und wurde nicht ordnungsgemäß geschlossen. In der OPENC-Routine kann der VERIF-Makro genutzt werden, um die Datei zu schließen und die Konsistenz wiederherzustellen. (Das Feld ID1ECB des FCB enthält den DVS-Fehlercode X'0DD1'). Ohne OPENC-Ausgang setzt das System die OPEN-Verarbeitung fort.

OPENER

Fehler beim Eröffnen der Datei: z.B. Widerspruch im FCB, der Datei wurde kein Speicherplatz zugewiesen. Ein Fehlerschlüssel, der den Zustand näher beschreibt, wird im FCB gespeichert.

OPENV

Für Banddateien:

Für Dateien mit Standardkennsätzen:
In der OPENV-Routine kann der Benutzer die UVL-Kennsätze prüfen (bei Eingabedateien) bzw. schreiben (für Ausgabedateien). Im Register 0 stellt das DVS die Adresse zur Verfügung, an der bei Eingabedateien der Kennsatz zu finden ist oder an der der Benutzer bei Ausgabedateien den Kennsatz bereitstellen muss. Für Ausgabedateien kann OPENV zum Positionieren oder Schreiben von (maximal 9) Benutzerkennsätzen (UVL) verwendet werden. Der Benutzer kann alle erforderlichen BTAM-Makroaufrufe absetzen.

Für Eingabedateien mit Nichtstandardkennsätzen:
Der Benutzer kann am OPENV-Ausgang seine Bandanfangskennsätze (wenn vorhanden) einlesen und prüfen.

Bevor der Benutzer die Kontrolle an das System zurückgibt (EXRTN-Makroaufruf), muss er das Band vor die Anfangskennsätze (HDR) der Datei – falls vorhanden – positionieren. Das Positionieren kann auch über FSEQ (siehe FILE/FCB) erfolgen. Der Benutzer ist für die korrekte Positionierung verantwortlich. Während des Positionierens kann das Benutzerprogramm keinen Bandwechsel durchführen.

OPENX

Der FCB wurde im Laufe der OPEN-Verarbeitung bereits auf Grund von Angaben in der TFT oder dem Katalog aktualisiert. Das Programm kann nun sicherstellen, dass alle Parameter so vorliegen, dass der OPEN ohne Fehler beendet werden kann. Bei OPEN= OUTPUT/OUTIN ist der FCB zwar über die TFT aktualisiert, der Katalogeintrag jedoch noch nicht. Die Verarbeitung wird nach Aufruf des EXRTN-Makros fortgesetzt.

OPENZ

Bei Dateien, die OUTPUT oder OUTIN eröffnet werden, ist zu dem Zeitpunkt, an dem der OPENZ-Ausgang genommen wird, die Katalogverarbeitung bereits abgeschlossen; es muss noch die abschließende OPEN-Verarbeitung durchgeführt werden.

In der OPENZ-Routine kann der FCB so modifiziert werden, dass die Verarbeitung durchgeführt werden kann: z.B. kann der Anwender eine Datei mit einer anderen als der im Katalog eingetragenen Zugriffsmethode bearbeiten.

Nach Aufruf des EXRTN-Makros wird die Verarbeitung fortgesetzt.

PASSER

Für eine geschützte Datei wurde ein falsches Kennwort angegeben.

PGLOCK

Nur zusammen mit SHARUPD=YES für UPAM oder ISAM:
vom aufrufenden Auftrag angeforderte Sperren können nicht gesetzt werden, weil sie bereits von einem anderen Auftrag gesetzt wurden; es besteht jedoch keine Deadlock-Gefahr.

UPAM:
die im FCB-Operanden PAMTOUT bestimmte Wartezeit ist abgelaufen, wenn dieser Ausgang angesprungen wird.

ISAM:
ist eine PGLOCK-Routine vorhanden, wartet ISAM nicht auf eine Satzsperre. Gilt PGLOCK=NO wird der Auftrag in eine Warteschlange eingereiht, der Benutzer wird dann nicht davon informiert, dass der Satz bereits von einem anderen Auftrag gesperrt wurde.

Wurde eine Datei mit SHARUPD=YES eröffnet, kann bei allen ISAM-Makroaufrufen die Steuerung an diesen Ausgang übergeben werden (ausgenommen OSTAT). Wenn der Ausgang PGLOCK genommen wird, ist der interne Zeiger falsch, es sei denn, der Zustand wurde durch PUTX- oder ELIM-Makroaufruf (ohne KEY) verursacht. Daher ist es unbedingt erforderlich, diesen Zeiger zurückzupositionieren, bevor ein Makroaufruf ausgegeben wird, der voraussetzt, dass der Zeiger richtig steht (z.B. bei GET, GETR und GETFL). Der Zeiger kann zurückpositioniert werden mit dem RETRY-Makroaufruf oder neu positioniert werden mit einem der ISAM-Aktionsmakroaufrufe GETKY, SETL, PUT, STORE, INSRT oder ELIM (mit KEY). Werden GET, GETR oder GETFL aufgerufen, bevor der Zeiger zurückpositioniert wurde, wird die Steuerung an den USERERR-Ausgang übergeben.

Wurde der Zustand, der dazu führte, dass der PGLOCK-Ausgang genommen wurde, durch PUTX- oder ELIM-Makroaufruf (ohne KEY) verursacht, bleibt der Datenblock gesperrt und ein Zurückpositionieren ist nicht erforderlich.

SEQCHK

Für ISAM:
ein Satz, der mit einem PUT-Makroaufruf in eine ISAM-Datei aufgenommen werden soll, enthält einen Satzschlüssel, der kleiner ist als der höchste Schlüssel der vorhandenen ISAM-Datei.

USERERR

Das Programm versucht eine unzulässige oder fehlerhafte Aktion auszuführen, wie z.B. Schreiben in eine mit INPUT eröffnete Datei, Aufruf eines PUTX- oder ELIM-Makros (ohne Schlüssel) für eine SHARUPD eröffnete ISAM-Datei ohne vorherige Sperre, unzulässiger PAM-Operationsschlüssel u.a.

WLRERR

Ein Satz mit falscher Länge wurde gelesen. Bei geblockten Sätzen fester Länge wird die Satzlänge als falsch betrachtet, wenn die Blocklänge nicht ein Vielfaches der im FCB-Eintrag RECSIZE definierten Satzlänge ist, bis zu der im FCB-Eintrag BLKSIZE definierten maximalen Blocklänge. Somit ist es zulässig, kurze Blöcke logischer Sätze zu lesen, ohne die Anzeige „falsche Satzlänge“ zu erhalten. Bei Sätzen variabler Länge ist die Satzlänge falsch, wenn sie sich nicht mehr mit der angegebenen Satzlänge im Steuerfeld des Blockzählers deckt.

Für Dateien mit Satzformat U braucht kein WLRERR-Ausgang vorgesehen zu werden, da die Satzlänge bei diesen Sätzen nicht überprüft wird.

Wird einem Programm an diesem Ausgang die Steuerung übertragen, enthält das Mehrzweckregister 0 die Adresse des fehlerhaften Blocks. Soll der Verarbeitungsablauf fortgesetzt werden, so muss der EXRTN-Makro aufgerufen werden. Enthält das Mehrzweckregister 0 den Wert X'00000001', wird der derzeitige Block übersprungen und die Verarbeitung ab dem nächsten Block fortgesetzt. Jede andere Anzeige bedeutet, dass der Block so verarbeitet werden soll, als ob kein Fehler aufgetreten wäre.

Ist für WLRERR keine separate Fehlerbehandlung vorgesehen, prüft das DVS beim Eintreten des Ereignisses „falsche Satzlänge“ die Angaben im ERROPT-Operanden:

  • ERROPT not equal NO: der Satz mit „falscher Länge“ wird behandelt wie ein fehlerhafter Block und die Steuerung an die bei ERROPT genannte Adresse übergeben.

  • ERROPT = NO: der Auftrag wird abgebrochen.

Hinweise zur Programmierung

  1. Die Register 14, 15, 0 und 1 sind DVS-Parameter-Register. Es gilt deshalb: falls nicht explizit anders beschrieben, kann der Anwender nicht davon ausgehen, dass diese Register einen definierten Wert haben, wenn er beim EXLST-Ausgang die Kontrolle erhält.

  2. Die folgenden Tabellen zeigen, wann welche EXLST-Ausgänge verwendet werden:

Fehlerausgang

STD
SAM

NSTD
SAM

ISAM

PAM

BTAM

Angabe
CLOSE

Angabe
EXRTN

Angabe
Aktions-Makroaufruf

CLOSER

A

A

A

A

A

N

N

N

CLOSPOS

N

A

N

A

A

N

A

A

DLOCK

N

N

N

A

N

A

N

A

DUPEKY

N

N

A

N

N

A

N

A

EOFADDR

A

A

A

A(1)

A(2)

A

N

A

EOVCTRL

A

A

N

N

A

A

A

N

ERRADDR

A

A

A

A

A

A

N

A

ERROPT

A

A

N

N

N

A

A

N

ISPERR

N

N

A

N

N

A

N

A

LABEND

A

A

N

A

A

X

A

A(3)

LABEOV

A

A

N

A

A

X

A

A(3)

LABERR

A

X

N

A

A

X

A

A(3)

LABGN

A

A

N

A

A

X

A

A(3)

LOCK

A

A

A

A

N

N

N

A

NODEV

A

A

A

A

A

N

N

N

NOFIND

N

N

A

N

N

A

N

A

NOSPACE

A

N

A

N

N

A

N

A/N(SAM)

OPENC

A

N

A

A

N

N

N

sinnvoll
VERIF

OPENER

A

A

A

A

A

N

N

N

OPENV

A

A

N

A

A

X

A

A(3)

OPENX

A

A

A

A

A

A

A

N

OPENZ

A

A

A

A

A

A

A

N

PASSER

A

A

A

A

A

N

N

N

PGLOCK

N

N

A

A

N

A

N

A

SEQCHK

N

N

A

N

N

A

N

A

USERERR

A

A

A

A

A

A

N

A

WLRERR

A

A

N

N

N

A

A

N


Bedeutung der Einträge

EXLST-
Operand

COMMON-
Ausgang

FCB-Schlüssel
(Feld ID1XITB)
X' '

1)
Programm-Abbruch

Bedeutung

CLOSER

Z

2C

A

Datei wird als geschlossen angesehen

CLOSPOS

N

70

N

Nur für Dateien mit Standardkennsätzen

DLOCK

Z

3C

A

Keine weiteren Sperrungen bis alle Sperrungen aufgehoben sind

DUPEKY

Z

54

A


EOFADDR

Z

40

A


EOVCTRL

N

34

N


ERRADDR

Z

44

A

Fehlerschlüssel und/oder Endebyte (PAM und BTAM)

ERROPT

N

48

A

Endebyte gespeichert im FCB

ISPERR

Z

50

A


LABEND

N

30

N

Datei wird als geschlossen angesehen

LABEOV

N

28

N

-

LABERR

N

6C

N

Nur für Dateien mit Standardkennsätzen

LABGN

N

24

N

-

LOCK

Z

10

A


NODEV

Z

14

A


NOFIND

Z

58

A


NOSPACE

Z

4C

A


OPENC

N

68

N


OPENER

Z

08

A

Fehlercode im FCB gespeichert

OPENV

N

1C

N


OPENX

N

04

N


OPENZ

N

18

N


PASSER

Z

0C

A


PGLOCK

Z

38

A


SEQCHK

Z

60

A


USERERR

Z

5C

A

Fehlerschlüssel gespeichert im FCB

WLRERR

N

64

N

Endebyte im FCB gespeichert


Legende

A

zulässig

X

nicht zulässig

Z

zutreffend

N

nicht zutreffend

(1)

nur bei der *DUMMY-Datei

(2)

nur bei FEOV verwendet

(3)

nur bei Angabe von LABEL=NSTD

1)

Das Programm wird beendet, falls der Ausgang nicht angegeben wurde und das Ereignis eintritt