Service-PGM'e haben normalerweise nur Funktionen und keine MAIN-Prozedur (dafür sind sie da) und laufen eigentlich unter der gleichen ACTGRP (*CALLER).
Eine ACTGRP wird automatisch beendet, wenn *INLR = ON ist, was nur bei MAIN-Prozeduren funktioniert.
Ein Service-PGM sollte (ich meine DARF) nicht per CALL sondern muss per CALLP aufgerufen werden. Dies erfordert ein Binderverzeichnis (CRTBNDDIR), das mit dem PGM, das den Service aufruft, mittels CRTPGM gebunden wird.
Service-Routinen sind wie lokale Prozeduren zu sehen.
Service-Programme sind eigentlich keine eigenständigen Programme und in der H-Bestimmung sollte am besten NOMAIN definiert werden.