9.7 Beispiel für eine Exit-Routine
Dieses Beispiel zeigt eine Realisierungsmöglichkeit für eine Exit-Routine, die folgende drei Anforderungen erfüllen
soll:
1.
Unter der Benutzerkennung USERID01 sollen keine freien Bänder neu reserviert werden; ein entsprechender
Versuch soll abgewiesen werden.
2.
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.
3.
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)
USING MARENA,7
CLC
OWNERID,CANUID
BE
CANCEL
CLC
OWNERID,=CL8'USERID02'
BNE
RETURN
CLC
LAFUNKNM,=CL8'MARENFA2'
BNE
CONTINUE
CLI
NUMMANFV,C'3'
BNE
CANCEL
B
UPDATE
CONTINUE MVC
NUMMANFV,=CL6'3'
MVC
NUMMEND,=CL6'399999'
UPDATE
MVC
USERFELD,=CL54'** EXIT-TEST **'
RETURN
MVC
RZFELD,RZTEXT
LM
14,12,12(13)
XR
15,15
BR
14
CANCEL
LM
14,12,12(13)
LA
15,4
BR
14
CANUID
DC
CL8'USERID01'
RZTEXT
DC
CL8'MAREN'
LTORG
MARENA LAYOUT=V8
END
GET @(ARCHREC)
CALLER=ARCHIVE EXIT?
IF NOT ->
VSN O.K.?
IF NOT - REJECT
SET FROM-OPERAND
SET TO-OPERAND
NORMAL-RETURN
INDICATE ERROR
REQUEST CANCEL
205