Hallo und guten Tag allerseits
ich habe hier eine Datei deren Satzaufbau mittels unterschiedlichen Satzarten für Datenübermittlung genutzt wird.
Die Strukturen sind dabe vorgegeben und können auch nicht geändert werden.
Nun habe ich das Problem, dass ein gewiefter Kollege nicht alle Felder für die Übertragung korrekt befüllt hat, sondern vielmehr Daten mittels cpyf und fmtopt(*nochk) hineinkopiert.
Dadurch passiert es, dass ein numerisches Feld Blanks enthält. Das Ausgangsfeld (S0815XFEMPF) ist mit 11/4 ZONED definiert und ebenso das Zielfeld (XEEMPF)
Ich habe nun im Programm versucht das Feld mittels monitor abzufangen:
Code:
monitor;
XEEMPF = %dec(S0815XFEMPF:11:4);
on-error 105;
XEEMPF = *zeros;
endmon;
bekokmme aber folgende Meldung:
Dezimaldatenfehler aufgetreten (C G D F)
Ursache . . . . : RPG-Prozedur TRANSFER in Programm PGMLIB/TRANSFER
hat bei Anweisung 1109 einen Dezimaldatenfehler gefunden. Ein gepackter oder
gezonter Wert enthält keine gültigen numerischen Daten. Eine Ziffer und/oder
das Vorzeichen ist ungültig.
Eigentlich dachte ich, dass ich das damit abfangen kann und er mir das Zielfeld mit Nullen auffüllt?
Danke für Eure Rückmeldungen.
PS: Hat sich inzwischen erledigt. Ich hatte den falschen Fehlercode: Für Dezimaldatenfehler lautet er 907.
Danke
Bookmarks