Das löst du am einfachsten mit einem Trigger.
Durch den Vergleich After/Before-Immage (falls nicht alle Felder relevant sind) kannst du dann ein Kopie wegschreiben mit ggf. Ergänzung Timestamp o.ä.

Das gewährleistet, dass auch Änderungen auf einem anderen Weg (SQL, UPDDTA, ODBC) festgehalten werden.

Alles andere ist da eher weniger hilfreich, da ggf. nicht sauber implementiert.

Ansonsten kannst du mit "qualified" Strukturen arbeiten, wobei du bereits bei den F-Bestimmungen die Ziel-DS qualified angeben solltest. Nach dem Read die DS kopieren.
Dann kannst du per DS-Vergleich die Änderung feststellen.

Zu beachten ist allerdings dann, dass alle Feldreferenzierungen dann qualified erfolgen müssen.
Das ist insbesonders dann problematisch, wenn man identische Feldnamen in verschiedenen Dateien (PF und DSPF oder PRTF) verwendet um sich den Move zu sparen.