PDA

View Full Version : RPG und Index



KingofKning
06-03-10, 09:33
Hallo,
wir habe in unserem ERp-System folgende Meldung gehabt:

Nachrichten-ID . . . . : RNQ0121 Bewertung . . . . . . : 99
Nachrichtenart . . . . : Anfrage
Sendedatum . . . . . . : 05.03.10 Sendezeit . . . . . . : 01:26:55

Nachricht . . . : Ein Feldgruppenindex liegt außerhalb des zulässigen
Bereichs (C G D F).
Ursache . . . . : RPG-Prozedur xxx in Programm yyy/xx hat bei
Anweisung 3207 versucht, einen Feldgruppenindex zu verwenden, der kleiner
als 1 oder größer als die Anzahl Elemente in der Feldgruppe war.
Fehlerbeseitigung: Mit Hilfe des Benutzers, der für die Programmpflege
verantwortlich ist, die Fehlerursache bestimmen.

Der Programmierer meint, das wäre durch eine Fehlerhafte Buchung entstanden.

Ich persönlich stelle mich auf den Standpunkt das es unsaubere Programmierung ist.
In Realia Cobol konnte ich soetwas früher abfangen ohne das mir das Programm auf die Schnauze fiel.
Wie sieht das in RPG (habe keine Ahnung davon) aus?

GG

BenderD
06-03-10, 10:07
... klarer Fall von (alltäglich vorkommendem) Huddel, keine Programmiersprache der Welt verbietet einen Index auf Gültigkeit zu prüfen, bevor man ihn auf ein Array loslässt. Viele Programmiersprachen haben mehr oder weniger commode Mechanismen Laufzeitfehler abzufangen, so auch RPG, von *PSSR über ILE Exithandler, Bezugszahl beim Call abfragen im aufrufenden Programm, MONMSG im aufrufenden CL bis hin zur Monitor Anweisung im RPG. Wer hier nix findet, kann nix, oder will nicht und manchmal darf er auch nicht, weil Huddel angeordnet wird, weil es schnell gehen soll.

D*B


Hallo,
wir habe in unserem ERp-System folgende Meldung gehabt:

Nachrichten-ID . . . . : RNQ0121 Bewertung . . . . . . : 99
Nachrichtenart . . . . : Anfrage
Sendedatum . . . . . . : 05.03.10 Sendezeit . . . . . . : 01:26:55

Nachricht . . . : Ein Feldgruppenindex liegt außerhalb des zulässigen
Bereichs (C G D F).
Ursache . . . . : RPG-Prozedur xxx in Programm yyy/xx hat bei
Anweisung 3207 versucht, einen Feldgruppenindex zu verwenden, der kleiner
als 1 oder größer als die Anzahl Elemente in der Feldgruppe war.
Fehlerbeseitigung: Mit Hilfe des Benutzers, der für die Programmpflege
verantwortlich ist, die Fehlerursache bestimmen.

Der Programmierer meint, das wäre durch eine Fehlerhafte Buchung entstanden.

Ich persönlich stelle mich auf den Standpunkt das es unsaubere Programmierung ist.
In Realia Cobol konnte ich soetwas früher abfangen ohne das mir das Programm auf die Schnauze fiel.
Wie sieht das in RPG (habe keine Ahnung davon) aus?

GG

Fuerchau
07-03-10, 09:45
Ein Programmfehler ist ein Programmfehler ist ein Programmfehler ist ein Programmfehler ...

Hier hat der Programmierer offensichtlich eine Fehlerbedingung vergessen zu überprüfen, in der Hoffnung dass sie nicht vorkommt.

Einer meiner früheren Mitarbeiter sagte mal: "Das ist kein Programmfehler, das ist so programmiert."

Ansonsten:
Per Auswahl "D" bekommt man einen Dump und kann diesen dann an den Programmierer weiterleiten um den Fehler für zukünftige Situationen beheben zu lassen.

holgerscherer
08-03-10, 12:27
Der Programmierer meint, das wäre durch eine Fehlerhafte Buchung entstanden.

Klar. Aber ein guter Programmierer sollte auch fehlerhafte Daten abfangen. Ich hab da so Kunden, mit einer "hochmodernen" Anwendung, da kann man ins Datumsfeld "Hallo" oder " " reinschreiben. Und erst beim Auswerten fällt man da auf die Fresse...

-h