Nur so am Rande:

FRCRATIO hat nix mit der Verfügbarkeit des Satzes zu tun, auch mit FRCRATIO <> 1 kann der Satz gelesen werden.

SEQONLY wird bei Update/Insert automatisch ausgeschaltet, wenn ein Update/Insert-Trigger definiert ist.
Gerade weil der Trigger ja jeden einzelnen Satz bearbeiten muss.

Anders siehts da bei Input-Dateien aus. Hier kann SEQONLY verwendet werden und somit im Puffer des Programmes ein ganzer Block vorhanden ist in dem der neu eingefügte Satz eben noch nicht enthalten ist.

Lösung:
Beim Erstellen der Programme Blockung für die Datei ausschalten.
SEQONLY(*NO) reicht da leider nicht, da dies das Blocken eben nicht verhindert.

Mit ODP's ist da etwas vorsichtiger umzugehen, da sonst aktuelle Lesezeiger verstellt werden können.
Hier kann man ggf. mit
OVRDBF ... SHARE(*YES)
OPNDBF ... *ALL
das Blocken verhindern. Allerdings können hier ggf. Satzsperren von untergeordneten PGM'en aufgehoben werden so dass nachfolgende Updates auf die nase fallen (Read fehlt).