Dieses Beispiel zeigt eine Realisierungsmöglichkeit für eine Exit-Routine, die folgende drei Anforderungen erfüllen soll:
Unter der Benutzerkennung USERID01 sollen keine freien Bänder neu reserviert werden; ein entsprechender Versuch soll abgewiesen werden.
Der Benutzerkennung USERID02 sollen nur solche freien Bänder neu zugeteilt werden, deren Archivnummer mit der Ziffer 3 beginnen. Bei diesen Archiveinträgen soll das Benutzerfeld mit der Zeichenkette '** EXIT-TEST **' vorbesetzt werden. Da bei allen Neureservierungen über die MAREN-ARCHIVE-Kopplung (LAFUNKNM= MARENFA2) der Nummernkreis nicht verändert werden darf, ist bei einer nicht mit der Ziffer 3 beginnenden Archivnummer die Reservierung abzubrechen.
Bei sämtlichen Neureservierungen soll das Verwaltungsfeld mit der Zeichenkette 'MAREN' vorbesetzt werden.
MARENEX1 CSECT STM 14,12,12(13) USING MARENEX1,15 L 7,0(,1) GET @(ARCHREC) USING MARENA,7 CLC OWNERID,CANUID BE CANCEL CLC OWNERID,=CL8'USERID02' BNE RETURN CLC LAFUNKNM,=CL8'MARENFA2' CALLER=ARCHIVE EXIT? BNE CONTINUE IF NOT -> CLI NUMMANFV,C'3' VSN O.K.? BNE CANCEL IF NOT - REJECT B UPDATE CONTINUE MVC NUMMANFV,=CL6'3' SET FROM-OPERAND MVC NUMMEND,=CL6'399999' SET TO-OPERAND UPDATE MVC USERFELD,=CL54'** EXIT-TEST **' RETURN MVC RZFELD,RZTEXT LM 14,12,12(13) XR 15,15 BR 14 NORMAL-RETURN CANCEL LM 14,12,12(13) LA 15,4 INDICATE ERROR BR 14 REQUEST CANCEL CANUID DC CL8'USERID01' RZTEXT DC CL8'MAREN' LTORG MARENA LAYOUT=V8 END