Shared Open hilft da auch nur bedingt (OVRDBF/CHGPF ... SHARE(*YES).

Hier kommt es insbesonders auf die Openart des 1. Programmes an.
Öffnet das 1. Programm die Datei Input, kann das folgende Programm die Datei auch nur noch Input eröffnen obwohl ggf. mit Update definiert ist.
Gemerkt wird das aber erst, wenn denn dann tatsächlich ein Update/Write erfolgt.
Desweiteren kann der aktuelle Satzzeiger durch untergeordnete Programme verschoben werden.
Liest das 1. Programm einen Satz mit Sperre und das das Unterprogramm dann ohne oder einen ganz anderen Satz, stimmt eben der Satzzeiger nicht mehr.

Hier empfielt sich doch eher die Verwendung eine "File-Handler's" der diese Operationen vornimmt.