Hallo zusammen, vielleicht kann mir wer mein aktuelles Problem erklären.

Mir ist bewusst, dass ich OPNQRYF gegen SQL tauschen könnte. Leider kann ich aber
nicht alle Programme immer sofort komplett umstellen, muss aber trotzdem betroffene
Programme ggf. compilieren.

In einem CL-Programm ist folgender Code
PHP-Code:
OVRDBF     FILE(LOGL1TOFILE(&LIB/LOGL5SHARE(*YES)                          

OPNQRYF    FILE((LOGL1)) OPTION(*INP *UPDFORMAT(*FILE) +
     
QRYSLT(&QRYBEDKEYFLD(*FILEOPNID(SPED3)        

CALL MYRPG1
CLOSE SPED3 
In MYRPG1 findet keine direkte Dateiverarbeitung statt. Diese erfolgt über ein *SRVPGM,
welches mit logischer Sicht LOGL5 arbeitet.

Hier hätte ich jetzt erwartet, dass Datei LOGL5 nach dem Statement OPEN nochmals geöffnet wird und die neue Instanz als Basis herangezogen wird (Filter wird ignoriert).
Die bisherige Programmversion hat den *SHARE, sowie den OPNQRYF aber berücksichtigt und die Datei LOHL05 nicht nochmals geöffnet und die gefilterten Datensätze verwendet.

Jetzt wurden am CL-Programm Änderungen vorgenommen (nicht auf den OPNQRYF bezogen) und das CL-Programm, sowie MYRPG1 neu compiliert.

Nach der Neuerstellung ignoriert das SRVPGM nun den *SHARE sowie den OPNQRYF und liefert
mir alle Datensätze.

Das CL-Programm wurde mit Aktivierungsgruppe *NEW, das MYRPG mit Aktivierungsgruppe *CALLER
umgewandelt. Dies gilt für die aktuelle und bishere Umwandlung.

Kann mir jemand diese Verhaltenweisen erklären?

Vielen Dank im voraus für die Antworten.

Michael