-
Fehlermeldung unterdrücken (COBOL)
Hallo *all,
ich schreibe hier fröhlich eine Preisdatei nach dem Motto der erste gewinnt. Sprich wenn ich für einen Artikel einen Preis haben notiere ich den, wenn ich später für diesen Artikel nochmals einen Preis finde interessiert mich das nicht.
Die Logik ist also immer Lesen aus Datei1 -> Schreiben in Datei2
wenn der Artikel jetzt doppelt ist bekomme ich eine Fehlermeldung im Joblog. Ich könnte natürlich vorher ein Read auf die Datei machen und bei nicht Erfolg schreiben.
Gibt es eine Alternative dazu den Fehler im Joblog zu unterdrücken?
Code:
NACHR-ID ART BEW DATUM ZEIT VON PGM BIBLIOTHEK INST AN PGM BIBLIOTHEK INST
CPF5026 Hinweis 30 25.01.17 01:16:47,713425 QDBSIGEX QSYS 0224 DBANK RPTRADE 0A25
Nachricht . . . : Keine doppelten Schlüssel für Teildatei DAT007 zulässig.
Ursache . . . . : Eine Ausgabe- oder Fortschreibungsoperation bei Teildatei
DAT007 konnte wegen eines doppelten Schlüssels in Teildatei DAT007 in Datei
DAT007 in Bibliothek RPTRADE nicht durchgeführt werden. Fehlerbeseitigung:
Anhand der vorher aufgeführten Nachricht CPF5009 feststellen, welcher Satz
GG 4875
-
Nein, die gibt es nicht. Auf Grund der Meldung wird ja " invalid key " ausgelöst.
Würdest du die Meldung unterdrücken, wäre die Fehlerabfrage nicht mehr möglich.
Im RPG ist das i.Ü. identisch.
-
Bau einen Monitor darum.
:-)
kf
-
Den gibts in COBOL nicht.
Bespiel Write COBOL:
WRITE RECORD
INVALID KEY mach was
END-WRITE
Write ILERPG
WRITE(E) RECORD;
if %error();
mach was
endif;
In beiden Fällen wird die Nachricht ins Joblog geschrieben.
In COBOL wird INVALID KEY ausgeführt, in ILERPG wird der %error()-Status gesetzt.
Selbst in ILERPG verschwindet dann die Nachricht nicht.
Um die Nachricht explizit zu entfernen benötigst du einen RCVMSG (oder das API dazu, ggf. QMHRCVM).
Das Hauptproblem in solchen Fällen ist ins besonders bei Masseninserts und häufigen Konflikten, dass das Joblog sehr groß wird (und je nach Einstellung vor einem WRAP erst mal gedruckt wird) und auch die Performance nicht unerheblich beeinflusst wird.
Aber selbst ein Prüflesen kann zu doppelten Schlüsseln führen, könnte allerdings die Anzahl der Konflikte reduzieren.
-
Naja so ganz direkt glaube ich das nicht. Ich kann auch in COBOL eine File-Status nach dem Write abfragen:
COBOL select
SELECT VIB1 ASSIGN TO DATABASE-LEAVIB1
ORGANIZATION IS INDEXED
ACCESS MODE IS DYNAMIC
RECORD KEY IS EXTERNALLY-DESCRIBED-KEY
FILE STATUS IS WS-STATUS.
write Statement
WRITE-VIB1-IND.
INITIALIZE WS-FILE-NAME
PERFORM FILL-KEY-VIB1 THRU FILL-KEY-VIB1-EX
MOVE 1 TO WRK-FOUND.
WRITE VIB1-SATZ
INVALID KEY MOVE ZEROES TO WRK-FOUND.
STRING CONST-DATEI-VIB1 DELIMITED BY SIZE
CONST-TRENN-ZEICHEN DELIMITED BY SIZE
INTO WS-FILE-NAME
END-STRING
PERFORM STD-FILSTAT THRU STD-FILSTAT-EX.
WRITE-VIB1-IND-EX.
EXIT.
STD-FILSTAT.
IF WS-STATUS NOT < '30'
mache irgendwas
END-IF.
STD-FILSTAT-EX.
Funktioniert bei uns seit 1990
EXIT.
Andreas
Ein AS/400 Dinosaurier since 1989
-
Das hat mit der MSG nichts zu tun.
Invalid Key wird bei Fehler ausgelöst, über den Filestatus kann ich den Grund näher bestimmen.
Similar Threads
-
By dschroeder in forum NEWSboard Programmierung
Antworten: 8
Letzter Beitrag: 08-04-16, 14:23
-
By woodstock99 in forum NEWSboard Programmierung
Antworten: 1
Letzter Beitrag: 22-03-16, 07:40
-
By systemer in forum IBM i Hauptforum
Antworten: 7
Letzter Beitrag: 26-02-03, 07:01
-
By Hans Zuther in forum IBM i Hauptforum
Antworten: 5
Letzter Beitrag: 12-06-02, 08:45
-
By klaus.haderer in forum IBM i Hauptforum
Antworten: 5
Letzter Beitrag: 09-08-01, 09:15
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- You may not post attachments
- You may not edit your posts
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks