Hallo zusammen. Erst mal vielen Dank für alle Antworten.

Ich schreibe es mal wie ich es verstanden habe. Allerdings möchte ich auf rekursive Aufrufe erst mal nicht eingehen, denn die machen wir nicht.

Gehen wir von Program C1 aus mit ACTGRP(C1)
Programm C1 ruft Programm R1 auf. ACTGRP(*CALLER) (R1 endet mit *INLR = *on)
Programm R1 ruft Programm R2 auf. ACTGRP(*CALLER) (R2 endet mit RETURN)

Jetzt bin ich am Ende des C1. Was genau muss ich machen, damit die Dateien aus R2 geschlossen werden.

So wie ich DBender verstehe, bleiben dann die Dateien aus R2 offen.
Um sie zu schließen muss ich einen RCLACTGRP machen. Aber dann sind sie auch zu.
Bitte einmal abnicken :-)