Hallo zusammen,

ich habe S/36-Dateien extern definiert und ein dazugehöriges RPG/36-Programm in RPG gewandelt (keine Angst, RPGLE und Co kommen noch. Aber erstmal 1:1 umwandeln...). Dabei stoße ich auf folgendes Phänomen:

Das Programm liest Sätze aus einer logischen Datei und zeigt mehrere nach Kunden/Auftragsnr. sortiert an. Bei Bild auf wird die nächste Seite mit Sätzen angezeigt.

Das RPG/36 Programm zeigt zu einem Kunden 2 Seiten Aufträge an. Das RPG Programm zeigt die zweite Seite leer an.

Im Debug sieht man, dass in der Leseroutine ein SETLL auf den letzen Satz der ersten Seite gemacht wird und dann in einer Schleife weitergelesen wird. Allerdings wird ein Satz des nächsten Kunden gelesen, der dann das Schleifenende verursacht. Obwohl noch weitere Sätze zum gesuchten Kunden kommen müßten.

Kann es sein, dass ein RPG den Zugriffspfad ignoriert und z.B. nach relativer Satznr. liest?

In der F-Karte ist die Datei mit Key definiert, der auch dem Key der logischen entspricht:

FABWI UF F 420 42AI 1 DISK


I und O Karten sind noch intern definiert.

In der C-Karte erfolgt ein SETLL und eine Schleife mit READ:
C YIIND2 SETLLABWI
C Z-ADD0 Z
C*----------
C BL2100 TAG
C SETOF 21
C READPABWI 21
C 21 GOTO BL2500
C RIIND COMP YIIND 21
C N21 GOTO BL2500

Beim SETLL steht in YIIND2 der letzte Satz des ersten Bildschirms. Der erste Read liest aber bereits den ersten Satz des zweiten Kunden und der COMP macht die 21 an.

Hab schon über OPNQRYF nachgedacht, um die Reihenfolge der Sätze zu sichern, allerdings gibt es auch updates im RPG.

Könnte das ein generelles Problem sein?

Möchte ungern alles umschreiben, da es recht umfangreich ist.

Gruß

Matthias