PDA

View Full Version : Subfile-Grenze



Joe
30-11-07, 11:00
Hallo Forum

Ich gebe in einem RPG-Programm gleichzeitig 2 Subfiles aus
um verschiedene Sichten anzuzeigen.
Mir ist bekannt, dass die Satzanzahl je Subfile auf 9999 begrenzt ist.

Das Pgm. bricht ab beim Schreiben in die zweite SUbfile:
"Empfängerwert zu klein, um Ergebnis zu halten."
"E/A-Fehler CPF5257 in Datei YTFSIS10 erkannt."
Der Subfile-Satz ist 8192.


Gibt es bei der Verwendung mehrerer Subfiles eine
weitere Grenze? Satzlänge, Anzahl Felder??

Gruß
Joe

Fuerchau
30-11-07, 11:48
Es können max. 12 Subfiles gleichzeitig in einer DSPF aktiv sein, je Subfile sind max. 16MB möglich, so dass jeder SFL-Satz ca. 1,5KB lang sein kann.

Im Joblog muss es aber zur Meldung "Empfängerwert" weitere Hinweise geben.

Joe
03-12-07, 13:54
Es können max. 12 Subfiles gleichzeitig in einer DSPF aktiv sein, je Subfile sind max. 16MB möglich, so dass jeder SFL-Satz ca. 1,5KB lang sein kann.

Im Joblog muss es aber zur Meldung "Empfängerwert" weitere Hinweise geben.

Hallo
Ich habe den Fehler noch einmal produziert und erhalte folgendes Ergebnis:
Von Programm . . . . . . . . . : cblabranch
An Programm . . . . . . . . . : QSFPUT
An Bibliothek . . . . . . . : QSYS
Instruktion . . . . . . . . : 00AC

ILE RPG/400-FORMATIERTER SPEICHERAUSZUG
Länge des letzten Satzes . . . . . . . : 155
Tatsächliche Satzlänge . . . . . . . . : 155
Relative Satznummer in der Subdatei . : 8192
Erste Satznummer in der Subdatei . . . : 0
Größe der Subdatei . . . . . . . . . . : -32768


Ein zu kleines Empfängerfeld konnte ich nicht ermitteln.
Die Satzlänge von 155 Byte dürfte auch keine Probleme machen.

Ich habe danach mal nach "cblabranch" gesucht und bin im Forum bei Thema "Empfängerwert zu klein" und der
Antwort: (raten Sie mal von wem)

" Die Meldung ist eindeutig ein COBOL-Problem, dass Überlauffehler nicht abgefangen sind. Die Meldung ist vielleicht etwas unklar.
Schau im COBOL-Prog. nach, was die Anweisung 30 denn macht (Umwandlungsliste)."

fündig geworden.

In meinem Pgm. (SQLRPGLE) gibt es kein COBOL.

Noch eine Idee?

Gruß und vielen Dank erstmal
Joe

Fuerchau
03-12-07, 14:18
Trotzdem nochmal, irgendeine Variable scheint da nun mal zu klein zu sein.
Bei welchem Befehl im Programm passiert dies denn ?
Wie sind die benötigten Variablen deklariert ?

Joe
03-12-07, 16:53
Trotzdem nochmal, irgendeine Variable scheint da nun mal zu klein zu sein.
Bei welchem Befehl im Programm passiert dies denn ?
Wie sind die benötigten Variablen deklariert ?

Hallo.

Die Ausgabe sieht wie folgt aus:

Rechnen,rechnen,rechnen
WRITE SUBFILE1
WRITE SUBFILE2

Der Fehler kommt beim Schreiben in SUBFILE2


Wenn ich in der gleichen Routine entweder nur SUBFILE1 oder
nur SUBFILE2 schreibe, läuft das Programm fehlerfrei. d.h. in den Rechenoperationen kann der Fehler mit zu kleinem Ergebnisfeld nicht auftreten.

Nächster Versuch:
Alle Subfile-Felder vor dem write mit 0 bzw. blank initialisieren bringt den gleiche Fehler.

Die fehlerhafte Subfile-Satznummer ist immer 8192, egal welche Daten zur Anzeige selektiert werde.

Bin absolut ratlos.

Joe

B.Hauser
03-12-07, 17:07
Hast Du Dir eigentlich mal einen Dump gezogen und die Feld-Inhalte beim Abbruch angeschaut?
Vielleicht ist ja der Subfile-Zähler übergelaufen oder ein Hidden-Feld.

Birgitta

Fuerchau
03-12-07, 19:30
Wichtig beim WRITE ist das befüllen der SFLRNR (siehe F-Bestimmungen)!

Ansonsten würde ich es halt mit weniger Sätzen probieren, denn sag mahl ehrlich, wer schaut sich denn tatsächlich mal 8000 Sätze an.

Joe
04-12-07, 08:35
Wichtig beim WRITE ist das befüllen der SFLRNR (siehe F-Bestimmungen)!

Ansonsten würde ich es halt mit weniger Sätzen probieren, denn sag mahl ehrlich, wer schaut sich denn tatsächlich mal 8000 Sätze an.


Hallo und Danke erstmal für die Hilfe.

"Wer schaut sich das denn an?" So argumentiere ich normalerweise auch.
Hier handelt es sich aber um Subfiles die nach einer
GUI-sierung ins EXCEL übernommen werden. Da benötige ich diese Grösse.
Ich werde die Ausgabe aber tatsächlich auf 8000 Sätze begrenzen müssen, sofern ich die Fehlerursache nicht finde.


Zum DUMP: Woraus resultiert die
Größe der Subdatei . . . . . . . . . . : -32768

Gruß
Joe

gue_br
29-03-11, 13:23
Hallo und Danke erstmal für die Hilfe.

"Wer schaut sich das denn an?" So argumentiere ich normalerweise auch.
Hier handelt es sich aber um Subfiles die nach einer
GUI-sierung ins EXCEL übernommen werden. Da benötige ich diese Grösse.
Ich werde die Ausgabe aber tatsächlich auf 8000 Sätze begrenzen müssen, sofern ich die Fehlerursache nicht finde.


Zum DUMP: Woraus resultiert die
Größe der Subdatei . . . . . . . . . . : -32768

Gruß
Joe


Hi Joe!

Selbiges Problem hatte ich auch mal.
Hab dann eine Maske mit div. Auswahlkriterien vorgeschalten und bei Überschreiten der Anzahl eine Fehlermeldung ausgegeben, daß eben die Auswahl eingeschränkt werden solle.

Gruß,
Günter