-
Fehlerbehandlung
Hallo,
habe folgendes Problem:
Bei der Verarbeitung von Schnittstellendaten mittels RPG schreiben wir an der ein oder anderen Stelle das Produkt zweier Felder in ein Zielfeld. Die Operanden sind erfolgreich durch die Plausiprüfung gelaufen, aber das Produkt ist unter Umständen zu groß für das Zielfeld, wenn bereits ein Wert (im Zielfeld) enthalten ist und dieser zum Produkt addiert wird. Die Anwendung läuft auf einen Fehler und es ist eine Benutzereingabe erforderlich (eine Break Message wird ausgegeben).
Kann man so einen Fehler, ähnlich einer Try / Catch Behandlung in Java, nicht automatisch abfangen und ebenso automatisch übergehen, weiterreichen etc. ?
Die Verarbeitung erfordert an dieser Stelle eine Eingabe und wird anschließend fortgesetzt, da der Fehler jedoch in der Nachtverarbeitung auftritt, ist kein Benutzer anwesend, der die Eingabe vornehmen könnte.
Hat jemand einen Tipp ?
Gruß Andreas Sturm
P.S.
Wünsche schöne Weihnachtsfeiertage und einen Guten Rutsch
-
Moin,
du kannst eine Monitor-Group verwenden.
PHP-Code:
/Free
Monitor;
Ziel = Wert1 * Wert2;
On-Error;
// Fehlerbehandlung
ENDMON;
/End-Free
Gruß
Sascha
-
oder
d ergebn s 9 2
c if wert1 * wert2 > 9999999,99
c eval ergebn =*Hival
c else
c eval ergebn = weret1 * wert2
c endif
-
Ohne Breakmessage wäre mir lieber !
Das programmatisch so abzufangen ist OK, mich würde aber interessiern, ob man die erforderliche Benutzereingabe für eine Breakmessage nicht "automatisieren" bzw. die Message unterdrücken kann.
Gruß Andreas Sturm
-
 Zitat von Asti
Das programmatisch so abzufangen ist OK, mich würde aber interessiern, ob man die erforderliche Benutzereingabe für eine Breakmessage nicht "automatisieren" bzw. die Message unterdrücken kann.
Gruß Andreas Sturm
Verstehe ich jetzt nicht ganz. Wenn du eine Monitor-Group verwendest kommt es nicht zu einer Breakmeassage.
Du kannst natürlich einen Antworteintrag für Fehlernachrichten setzen (WRKRPYLE), aber das macht für solche Fälle eigentlich keinen Sinn
Gruß
Sascha
-
?!
.... nicht PHP sondern RPG !
 Zitat von JonnyRico
Moin,
du kannst eine Monitor-Group verwenden.
PHP-Code:
/Free Monitor; Ziel = Wert1 * Wert2; On-Error; // Fehlerbehandlung ENDMON; /End-Free
Gruß
Sascha
-
 Zitat von Asti
.... nicht PHP sondern RPG !
WHAT??? Das ist RPG-Code nur um den hier schöner darzustellen, verendet man PHP-Tags!
-
Hallo Asti,
ich persönlich würde die Problembeseitigung davon abhängig machen, wie auf die Fehlermeldung im Nachtlauf bisher reagiert wurde.
Was passiert denn dann?
Wird das Programm abgebrochen, die Werte manuell in irgendwelchen Dateien gepitcht, und dann das Programm neu aufgerufen, oder was?
Warum so etwas "kompliziertes" wie ein Monitoring? (try/catch)
Genügt es nicht einfach im RPG VOR der Stelle die knallt ne einfach IF-Abfrage reinzubauen, die dann entsprechend reagiert (Wert ändern, Nachrich senden o.ä.)?
DAS wäre für mich ne Lösung die ich akzeptabel finden würde.
Alles andere würde nach Murphy die Sache doch nur noch "verschlimmbessern"..
kuempi
-
... es wird abgebrochen ...
und auf die Benutzereingabe gewartet. Auf diese Vorgehensweise habe ich selber keinen Einfluss; würde den RPG Programmierern, die derzeit keine Alternative finden, gerne einen Vorschlag unterbreiten.
Gruß Andreas Sturm
 Zitat von kuempi von stein
Hallo Asti,
ich persönlich würde die Problembeseitigung davon abhängig machen, wie auf die Fehlermeldung im Nachtlauf bisher reagiert wurde.
Was passiert denn dann?
Wird das Programm abgebrochen, die Werte manuell in irgendwelchen Dateien gepitcht, und dann das Programm neu aufgerufen, oder was?
Warum so etwas "kompliziertes" wie ein Monitoring? (try/catch)
Genügt es nicht einfach im RPG VOR der Stelle die knallt ne einfach IF-Abfrage reinzubauen, die dann entsprechend reagiert (Wert ändern, Nachrich senden o.ä.)?
DAS wäre für mich ne Lösung die ich akzeptabel finden würde.
Alles andere würde nach Murphy die Sache doch nur noch "verschlimmbessern"..
kuempi
-
Also solche Fehler automatisch zu ignorieren, halte ich im Sinne der Anwendung für fatal, wer weiß, welche Folgefehler durch solche fehlerhaften Daten dann entstehen.
Ein RPG-Programmierer müsste eigentlich wissen, wie man solche Fehler abfängt 
Lass doch deine RPG-Programmierer mal hier ins Forum schauen.
Beide Möglichkeiten
- IF Wert zu groß
- Monitor
sind korrekt, aber das Programm sollte wissen, was dann zu geschehen hat. Einfache Ignoranz ist bestimmt nicht korrekt, insbesonders wenn z.B. Provisionen vom Umsatz oder Buchhaltung betroffen sind.
Solche Meldungen per RPYLE zu beantworten bedeutet auch, dass andere Programme mit ähnlichen Fehlern automatisch weiterlaufen und keiner merkt's.
-
Hallo,
habe mir eben die beiden Möglichkeiten mit einem RPG Programmierer angeschaut. Den Vorschlag bezüglich RPYLE würde ich selber als ungeeignet einschätzen, da Auswirkungen auf alle Anwendungen zu erwarten sind. Leider liegen besagte Programme nicht im Freeformat vor, was Vorschlag 2 wohl ausschließt (MonitoR) !? Da bei der Verarbeitung eine ganze Reihe Felder auf beschriebene Weise gefüllt werden ist eine Ergänzung um die IF Abfrage zur Zeit kein Thema (zu viel Aufwand).
Problematisch ist, daß der Rest der Nachtverarbeitung nicht weiterläuft und diese Auswirkungen wesentlich kritischer sind als die fehlende oder fehlerhafte Verarbeitung des (einen) Satzes.
Angemerkt sei folgendes: die Wahrscheinkichkeit für diesen Fehler ist schon sehr gering, da die Schnittstellendaten eigentlich sehr "sauber" sind (ist 1 x innerhalb von 3 Jahren aufgetreten).
Der fehlerhafte Satz soll nicht ignoriert werden, es wäre aber "sehr schön", wenn keine Benutzereingabe erforderlich ist und der Programmieraufwand im akzeptablen Rahmen bleibt. Noch 'ne Idee ?!
Gruß Andreas Sturm
 Zitat von Fuerchau
Also solche Fehler automatisch zu ignorieren, halte ich im Sinne der Anwendung für fatal, wer weiß, welche Folgefehler durch solche fehlerhaften Daten dann entstehen.
Ein RPG-Programmierer müsste eigentlich wissen, wie man solche Fehler abfängt
Lass doch deine RPG-Programmierer mal hier ins Forum schauen.
Beide Möglichkeiten
- IF Wert zu groß
- Monitor
sind korrekt, aber das Programm sollte wissen, was dann zu geschehen hat. Einfache Ignoranz ist bestimmt nicht korrekt, insbesonders wenn z.B. Provisionen vom Umsatz oder Buchhaltung betroffen sind.
Solche Meldungen per RPYLE zu beantworten bedeutet auch, dass andere Programme mit ähnlichen Fehlern automatisch weiterlaufen und keiner merkt's.
-
na dann
ändere einfach die entsprechende Jobbeschreibung auf default-Antwort.
CHGJOBD JOBD(QBATCH) INQMSGRPY(*DFT)
dann sollte das fehlerhafte Programm den defaultwert für die Fehlermeldung erhalten und z.B. dumpen und natürlich sich selbst beenden.
Similar Threads
-
By Squall in forum NEWSboard Programmierung
Antworten: 17
Letzter Beitrag: 07-10-06, 16:20
-
By C_Dewald in forum NEWSboard Programmierung
Antworten: 2
Letzter Beitrag: 06-08-03, 08:14
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