PDA

View Full Version : CPF5063 bei ACCEPT



Neptun
17-03-05, 16:10
Hallo!

Bekomme SPORADISCH Abstürze bei einem ACCEPT (*EXTACCDSP) Befehl.

Hier die Fehlermeldung:

Nachrichten-ID . . . . : LBE7208 Bewertung . . . . . . : 30
Nachrichtenart . . . . : Anfrage
Sendedatum . . . . . . : 17.03.05 Sendezeit . . . . . . : 17:48:10

Nachricht . . . : Erweiterte Anweisung ACCEPT oder DISPLAY 351 ist
fehlgeschlagen (C D F G).
Ursache . . . . . : Programm XXXXXX in YYYYYYY hat eine erweiterte Anweisung
DISPLAY oder ACCEPT ausgegeben, die bei COBOL-Anweisung 351 fehlgeschlagen
ist. Dabei wurden Nachricht CPF5063 und Einheitenantwortcode 10050121
ausgegeben. Möglicherweise liegt ein Benutzer- oder Umwandlungsfehler vor.
Die fehlerhafte COBOL-Anweisung anhand der aufgelisteten Antwortcodes
ändern. Tritt der Fehler erneut auf, die mögliche Fehlerursache anhand des
Handbuchs 5250 Functions Reference Manual, IBM Form SA21-9247, feststellen.
Im folgenden sind einige Antwortcodes und deren COBOL-Interpretation
aufgeführt:
1005 0122 Die Zeile, Spalte oder Stelle, an der sich der Positionsanzeiger
1005 0125 Es besteht möglicherweise ein Umwandlungsfehler. Die Anweisung
ACCEPT hat die Feldlänge nicht korrekt berechnet.
1005 0126 Ein mit der Anweisung ACCEPT definiertes Feld beginnt in einer
ungültigen Zeile oder Spalte.
1005 0128 Die Anweisung ACCEPT definiert ein Feld, das nicht innerhalb des
Bildschirmbereichs liegt.
1005 0129 Es wurde versucht, zu viele Eingabefelder zu übertragen.
1005 012A Die Anweisung DISPLAY hat Daten über den Bildschirmbereich hinaus
geschrieben.




Das ist die Programmzeile:

*...+....1....+....2....+....3....+....4....+....5 ....+....6....+....7....+....8....+...
351 049100 ACCEPT INP-FELD LINE 21 COLUMN 05 WITH UNDERLINE UPDATE.
049200*



Bei 90% der Programmstarts gibt es keine Probleme. Es ist immer DERGLEICHE Aufruf mit den GLEICHEN Daten. Und gelegentlich kommt CPF5063!?!?

Bin etwas ratlos.


Gruß
Neptun

Fuerchau
17-03-05, 16:22
Die einzige Vermutung ist, dass der Inhalt des INP-FELD evtl. nicht darstellbare Zeichen enthält.
Man müsste nun in dem angegebenen Handbuch den Fehlercode 10050121 suchen.
Leider muss man das Handbuch kaufen und ist Online nicht verfügbar.

Neptun
17-03-05, 16:26
@Fuerchau

Erstmal danke für die Antwort.
Eingabefeld wird unmittelber vor dem ACCEPT mit SPACE initialisiert.

" <TABLE class=tborder cellSpacing=0 cellPadding=5 width="100%" align=center border=0><TBODY><TR title="Beitrag 27673" vAlign=top><TD class=alt2>Leider muss man das Handbuch kaufen und ist Online nicht verfügbar.</TD></TR><TR><TD class=thead colSpan=2>Heute 17:10</TD></TR></TBODY></TABLE>"

Grrrrrrrmmmmppppfffff :(


Gruß
Neptun

RobertMack
17-03-05, 16:38
Dr. Google sagt:

"For some reason, it is just called the `Functions Reference', it is available here:
http://publib.boulder.ibm.com:80/cgi-bin/bookmgr/BOOKS/CO2E2001/CCONTENTS

This is actually the functions reference for the 5494, but it contains everything from the 5250 Functions Reference ..."

... hoffentlich brauchbar,

Gruß Robert

Fuerchau
18-03-05, 09:03
Nur so eine Idee:
Kommt es bei der Zeile/Spalte und Feldlänge ggf. zu einer Überlappung mit anderen Feldern, die bereits auf dem Bild sind ?
Dies ist leider so nicht möglich !
In diesem Fall ist ggf. das gesamte Bild neu aufzubauen.

Neptun
18-03-05, 09:13
@Fuerchau
Überlappung? Nun ja :)

Zunächst einmal ist ein Transaction-File auf dem Schirm. Auf dieses wird ein Write und ein Read gemacht. Dann ruft dieses Programm ein Unterprogramm auf, welches mittels Extended Display und Accept einen Großteil des Schirms überlagert. Es werden zunächst einmal mit DISPLAY SPACE AT ... diverse Zeilen leergemacht. Dann werden auf diesen Zeilen die Inhalte angezeigt. Dann ein Eingabefeld mit ACCEPT entgegengenommen. Wenn du es als Überschneidung ansiehst, dass ich auf der Stelle wo der ACCEPT stattfindet, zuvor einen DISPLAY SPACE gemacht habe, dann habe ich eine Überschneidung, sonst nicht.

Gruß
Neptun

Fuerchau
18-03-05, 10:06
Auch wenn du dir vielleicht schon viel Mühe gegeben hast, warum kannst du das nicht mittels Transactionfile lösen ?
Nur des Spasses wegen ?

Neptun
18-03-05, 10:52
@Fuerchau
Ich habe das mit Extended ACCEPT/DISPLAY gemacht, da es geplant ist, dass Ganze dynamisch zu gestalten. Und zwar dynamisch in Hinsicht der Position und Größe auf dem Bildschirm. Und weil ich kein AS/400-Freak bin und somit Transaction-Files erstmal "Fremdkörper" sind :)

Wenn dieses Problem mit dem CPF5063 weiterhin auftritt, dann werde ich das eventuell doch noch auf Transaction-File umstellen...

Gruß
Neptun

Fuerchau
18-03-05, 11:04
Was die Dynamik angeht, ist DDS doch prädestiniert !
Nimm ein WINDOW-Format (noch ein schöner Rahmen dazu), die Position und Größe bestimmst du über Programmübergabefelder.
Für die Überlagerung nimmst du ein blindes Format mit ASSUME (im Forum schon diskutiert) und USRRSTDSP.
Über CSRLOC kannst du gezielt den Cursor positionieren (falls erforderlich):
http://publib.boulder.ibm.com/iseries/v5r2/ic2924/info/rzakc/rzakcmst57.htm
Die Cursorposition bekommst du über RTNCSRLOC:
http://publib.boulder.ibm.com/iseries/v5r2/ic2924/info/rzakc/rzakcmst145.htm

Neptun
18-03-05, 11:47
@Fuerchau
Danke für die Links, sind wirklich brauchbar


ABER: Ich habe soeben den Fehler mit hoher Wahrscheinlichkeit gefunden. Ich hatte an einer Stelle bereits Extended Display's abgesetzt, obwohl es an dieser Stelle noch gar nicht klar war, ob überhaupt ein ACCEPT kommt. Offenbar waren diese DISPLAY's noch in einem Puffer und sind dann beim nächsten Durchlauf sauer aufgestoßen. Also: Programmierfehler :)

Gruß
Neptun