Wenn ein Trigger ein anderes Programm aufruft, muss dieses sicherstellen, dass die Daten auch tatsächlich erneut gelesen werden.
Ich kenne auch Programme, die sich "merken", welche Daten schon mal gelesen wurden und diese halt nicht nochmal neu liest.

Im OPMRPG gabs die Anweisung FREE um ein gecalltes Programm zurückzusetzen.
Im ILERPG gibts dies nicht mehr.

Hier hilft nur, dem Triggerprogramm eine eigene ACTGRP zu verpassen, ggf. ein CLLE zwischenzuschalten, dass wiederum eine eigene ACTGRP bildet und dann das ursprüngliche Programm aufruft. Dieses Ursprungsprogrogramm sollte in der ACTGRP *CALLER (bei OPM standard) laufen.
Nach dem Aufruf dann ein RCLACTGRP durchführt um eben für den nächsten Aufruf die Initialisierung sicherzustellen.

Aber über Performance dürfen wir uns hier nicht unterhalten.