Your Browser is not longer supported

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

{{viewport.spaceProperty.prod}}

Ausgabe von Meldungen in S-Variablen

&pagelevel(3)&pagelevel

Für eine Reihe von Meldungen werden Meldungsschlüssel und Inserts (Nummer und Semantik) als unveränderliche Bestandteile für künftige PERCON- und BS2000-Versionen garantiert. Solche Meldungen werden als garantierte Meldungen bezeichnet.

Garantierte Meldungen des Produkts PERCON

Garantierte Meldungen von PERCON sind

  • Meldungen zum Start und zur Beendigung von PERCON

  • Meldungen über die Anzahl bearbeiteter Sätze bzw. Blöcke

  • Meldungen mit Inserts wie DVS-Fehlercodes, Dateinamen, usw.

  • Meldungen zu Fehlern, deren Ursache nicht in der Syntax bzw. Semantik der Anweisungen liegt (z.B. zu kurze Sätze in einer Datei).

In PERCON werden folgende Meldungen garantiert:


PER0000         PERCON startet 
PER0001         PERCON abgebrochen 
PER0002         Fehler in einem Systemmakro 
PER0003         Speicherplatzmangel 
PER0004         Datei auf falschem Speichermedium 
PER0009         Ausgabe-Satzlänge zu groß 
PER0012         Widerspruch in Dateinamen 
PER0014         Sekundärschlüssel nicht übernommen 
PER0016         DVS-Fehler bei Dateiwiederherstellung 
PER0017 - 19    XHCS-Probleme 
PER0021 - 23    OPEN- / CLOSE-Probleme 
PER0028         LINK-Fehler bei Benutzermoduln 
PER0029 - 30    Anzahl bearbeiteter Sätze bzw. Blöcke 
PER0031         PERCON normal beendet 
PER0035         ISAM-Schlüssel nicht aufsteigend 
PER0036         DVS-Fehler
PER0038         Abbruch wegen Parity- oder Längenfehler 
PER0039         CCSN-Unverträglichkeit  bei SYSOUT 
PER0041 - 42    fehlerhafter Datensatz 
PER0044         Datensatz zu kurz 
PER0045         Datensätze nicht in Folge 
PER0048         Returncode einer Benutzer-Routine unzulässig 
PER0053 - 54    Fehler der Ausgabedatei bei FILLER=*OUTPUT 
PER0057         Gerätefehler beim Positionieren 
PER0069         Fehler beim Bandduplizieren 
PER0092 - 94    Dateiwiederherstellung mittels VERIF 
PER0095         Großmodul von PERCON nicht ladbar 
PER0098         ISAM-Schlüssel bereits vorhanden 
PER0099 - 103   Fehler bei Übernahme von Sekundärschlüsseln 
PER0104 - 107   PERCON-Version nicht verfügbar 
PER0109         CCSN für Ausgabedatei nicht vermerkbar 
PER0110         unzulässige BS2000-Version 
PER0111         BIND-Fehler beim Nachbinden des Großmoduls  


Bei Einsatz des Software-Produkts SDF-P besteht die Möglichkeit, diese garantierten Meldungen in strukturierte S-Variablen auszugeben. Über S-Variablen kann direkt auf bestimmte Meldungsdaten zugegriffen werden, ohne dass das Ausgabelayout der Meldungen bekannt sein muss. Damit ist es möglich, in SDF-P-Prozeduren, abhängig vom Inhalt dieser S-Variablen, die Weiterverarbeitung zu steuern.

Garantierte Meldungen sind mit dem Meldungsattribut "Warranty : YES" versehen.

Vorgehensweise

Eine S-Variable, die Meldungen aufnehmen kann, muss als Liste von Strukturen aufgebaut sein. Ihr Name ist frei wählbar und wird im Folgenden durch varname dargestellt.
Die S-Variable muss vom Benutzer mit folgendem Kommando vereinbart werden:

/DECLARE-VARIABLE NAME=varname(TYPE=*STRUCTURE(DEFINITION=*DYNAMIC)),-

/ MULTIPLE-ELEMENTS=*LIST,SCOPE=*TASK

Hinweis

Die Angabe SCOPE=*TASK ist nur erforderlich, wenn die S-Variable auch in Prozeduren gültig sein soll, die nach der Vereinbarung der S-Variablen aufgerufen werden.

Für jede Struktur (jede Meldung) sind folgende Struktur-Elemente vorgesehen:

Name des StrukturelementsInhalt
varname(*LIST).MSG-TEXTvollständiger Meldungstext
varname(*LIST).MSG-IDMeldungsschlüssel
varname(*LIST).I0Insert 0
varname(*LIST).I1Insert 1
. . .. . .
varname(*LIST).I14Insert 14
varname(*LIST).REPLY

eingegebene Antwort


Die Anzahl der Inserts hängt von der Meldung ab, ebenso, ob eine Antwort vermerkt wird oder nicht.

Nach der Vereinbarung der S-Variablen wird ihr der Meldungsstrom mit folgendem Kommando zugewiesen:

/ASSIGN-STREAM STREAM-NAME=SYSMSG,TO=*VARIABLE(varname)

Danach kann PERCON oder ein Programm, das PERCON als Unterprogramm aufruft, gestartet werden. Während des PERCON-/Programm-Laufs wird die S-Variable gefüllt.

Nach Beendigung von PERCON oder des Programms, wird der Meldungsstrom in die S-Variable gestoppt und wieder dem Standard-Ausgabemedium für Meldungen zugewiesen:

/ASSIGN-STREAM STREAM-NAME=SYSMSG,TO=*STD

Die Variable varname enthält alle garantierten Meldungen, die zwischen den beiden ASSIGN-STREAM-Kommandos ausgegeben wurden. Dazu gehören insbesondere auch die BLS-Meldungen.

Wenn PERCON als Unterprogramm aufgerufen wird, enthält die S-Variable zusätzlich alle garantierten Meldungen, die vom Hauptprogramm ausgegeben wurden.

Um die Ausgabe zusätzlicher Meldungen zu unterdrücken, können die beiden ASSIGN-STREAM-Kommandos auch über CMD-Makro unmittelbar vor und nach dem PERCON-Aufruf im Hauptprogramm ausgeführt werden.

Die Ausgabe in die S-Variablen erfolgt unabhängig davon, ob bei der Meldungsausgabe die Ausgabe über SYSOUT bzw. SYSLST unterdrückt wird oder nicht.

Eine detaillierte Beschreibung der S-Variablen ist im Handbuch [13] "SDF-P" zu finden.

Auswertung von S-Variablen

Der Inhalt einer S-Variablen kann mit dem Kommando SHOW-VARIABLE ausgegeben werden. Nach Abschluss eines PERCON-Laufs könnte eine S-Variable mit dem Namen PERVAR wie folgt belegt sein:

/show-variable variable-name=pervar
PERVAR(*LIST).MSG-TEXT = % BLS0517 MODULE 'PCROOT' GELADEN
PERVAR(*LIST).MSG-ID = BLS0517
PERVAR(*LIST).I0 = PCROOT
PERVAR(*LIST).MSG-TEXT = % PER0000 PERCON GESTARTET, VERSION V03.0A00
PERVAR(*LIST).MSG-ID = PER0000
PERVAR(*LIST).I0 = V03.0A00
PERVAR(*LIST).MSG-TEXT = % PER0044 FELD IN 'SET-RECORD-MAPPING'-ANWEISUNG
UEBERRAGT EIN-/AUSGABE-SATZENDE, LINK='PCOUT'
PERVAR(*LIST).MSG-ID = PER0044
PERVAR(*LIST).I0 = SET-RECORD-MAPPING
PERVAR(*LIST).I1 = PCOUT
PERVAR(*LIST).MSG-TEXT = % PER0030 ANZAHL VERARBEITETER SAETZE FUER
LINK='PCIN' :         3
PERVAR(*LIST).MSG-ID = PER0030
PERVAR(*LIST).I0 = PCIN
PERVAR(*LIST).I1 =
PERVAR(*LIST).I2 =           3
PERVAR(*LIST).MSG-TEXT = %  PER0030 ANZAHL VERARBEITETER SAETZE FUER
LINK='PCOUT' (FILE=:catid:$userid.XXX):          2
PERVAR(*LIST).MSG-ID = PER0030
PERVAR(*LIST).I0 = PCOUT
PERVAR(*LIST).I1 = (FILE=:catid:$userid.XXX)
PERVAR(*LIST).I2 =           2
PERVAR(*LIST).MSG-TEXT = %  PER0001 PERCON-LAUF ABGEBROCHEN
PERVAR(*LIST).MSG-ID = PER0001


Die einzelnen Struktur-Elemente der Variablen können gezielt angesprochen werden (z.B. wird mit /show-variable variable-name=pervar#3.MSG-ID der Meldungsschlüssel der dritten Meldung ermittelt).

Folgendes Beispiel zeigt einen Ausschnitt aus einer SDF-P-Prozedur, in der eine FOR-Schleife verwendet wird, um garantierte Meldungen in S-Variablen abzulegen:

/DECLARE-VARIABLE NAME=PERVAR(TYPE=*STRUCTURE), - —————————————————————  (1) 
/                 MULTIPLE-ELEMENTS=*LIST 
/DECLARE-VARIABLE NAME=PERSTR(TYPE=*STRUCTURE) ————————————————————————  (2) 
/ASSIGN-STREAM STREAM-NAME=SYSMSG,TO=*VARIABLE(PERVAR) ————————————————  (3) 
/START-PERCON —————————————————————————————————————————————————————————  (4) 
. 
...   (PERCON-Anweisungen usw.) 
.
/ASSIGN-STREAM STREAM-NAME=SYSMSG,TO=*STD —————————————————————————————  (5) 
/FOR PERSTR= *LIST(PERVAR) ————————————————————————————————————————————  (6) 
/    IF (PERSTR.MSG-ID = 'PER0001') 
/        WRITE-TEXT '*-----------------------------------------*'
/        WRITE-TEXT '* ABBRUCH PERCON / MASSNAHME ERFORDERLICH *'
/        WRITE-TEXT '*-----------------------------------------*'
/    END-IF 
/END-FOR    

(1)

Die S-Variable PERVAR wird als Liste von Strukturen vereinbart.

(2)

Die Strukturvariable PERSTR wird für die folgende FOR-Schleife vereinbart.

(3)

Ab jetzt werden garantierte Meldungen in PERVAR abgelegt.

(4)

PERCON wird gestartet.

(5)

Das Ablegen der garantierten Meldungen in PERVAR wird gestoppt.

(6)

Mit Hilfe einer FOR-Schleife wird die gesamte Liste von Strukturen PERVAR durchsucht, ob der Meldungsschlüssel PER0001 als MSG-ID auftritt. Wenn ja, wird mit WRITE-TEXT eine Information ausgegeben.

Die Fehlermeldungen werden 7-stellig (PERnnnn) mit ihrer Bedeutung und eventuell erforderlichen Maßnahmen in deutscher bzw. englischer Sprache ausgegeben.

Den Umfang der Dialogmeldungen kann man durch Angaben in der MODIFY-PERCON-OPTIONS-Anweisung steuern.