Grundsätzlich hat jede ACTGRP seine eigene Commit-Definition.
Nun kommt es auf die Aufgabenstellung an:
Ein Service-Programm sollte nie die Transaktion des Aufrufers zerstören, da sonst commit/rollback durchgeführt werden, die der Rufer nicht erwartet.
Muss ein Service-Programm eine eigene Transaktion durchführen, die unabhängig vom Rufer ist, so bietet sich hier eine benannte ACTGRP oder *NEW (was schlechter, also weniger performant, ist) an.

Eine Mischung zwischen Service-Funktionen über eine gemeinsame Transaktion als auch einer eigenen Transaktion kann in einem Service-Programm nicht erfolgen.
Dann kannst du das Transaktionskonzept gleich vergessen.