Hinweise zu Prozeduren
Die nachfolgend beschriebene DO-Prozedur realisiert eine Konsole, die die folgenden Funktionen ausführt:
1) Systemdumps werden automatisch mit tsn.Y beantwortet.
2) Über das Kommando /TYPE CFSCON:/cmd bzw. /TYPE CFSCON:tsn.xxxx können von Benutzertasks, die unter den Kennungen TSOS oder TT08 angeloggt sind, beliebige Konsoleingaben getätigt werden.
3) Die DO-Prozedur wird durch Eingabe des Kommandos /TYPE TERMINATE CONSOLE beendet.
/PROC N
/SYSFILE SYSDTA=(SYSCMD)
/SETSW ON=(1,4)
/EXEC $CFS.CFS
*002 FILE=NO
OC9$CONSOLE,,,R
xxxxx,C'sssss'
*&STAM='Y'
*ON %OUT=($CFS.CFS.PROCLIB(X/SRCITEM)) RESUME
CC9/STA MSG nachschauen, ob Anfragen ausstehen
*SKIP .SETTSN
.LOOP
*IF &STAM='N' SKIP .ONOUT
*SEND '/STA MSG'
.ONOUT
*ON %OUT letzte *ON %OUT-Bedingung aktivieren
.SETTSN
*&TEXT=%PTR(1,80) Meldungstext merken
*WRITE '&TEXT' Meldungstext ausgeben
*&TASK=%PTR(1,4)
*SKIP &SLABEL
.NOMSG
*&STAM='N'
*SKIP .LOOP
.SYSDUMP
*WRITE '--------> &TASK..Y'
*SEND '&TASK..Y'
*SKIP .LOOP
.CFSCONSOLE
*IF %OUT=:1:'%' &TASK=%PTR(1,4)
*&VAR='USER-ID('&TASK.')'
*IF &&VAR='TSOS' SKIP .ALLOW-CONSINPUT
*IF &&VAR='TT08' SKIP .ALLOW-CONSINPUT
*WRITE '/MESS TSN=&TASK,USER-ID &&VAR. NICHT ZUR KONSOLEINGABE BERECHTIGT'
*SEND '/MESS TSN=&TASK,USER-ID &&VAR. NICHT ZUR KONSOLEINGABE BERECHTIGT'
*SKIP .LOOP
.ALLOW-CONSINPUT
*&TEXT2=&TEXT(1,50)
*WRITE 'KOMMANDO AUSGEFUEHRT: &TEXT2'
*SEND '&TEXT'
*SEND '/MESS TSN=&TASK,KOMMANDO AUSGEFUEHRT: &TEXT2'
*SKIP .LOOP
.EXIT
*ON %TIME=0 RETURN Rückkehr in das Kommandofeld von CFS
DC9
END CFS beenden
/SETSW OFF=(1,4)
/ENDP
Die Bedingungen, auf welche Konsolmeldungen reagiert werden soll, sind in dem Element X/SRC ITEM der PLAM-Bibliothek $CFS.CFS.PROCLIB gespeichert. In unserem Beispiel hat das Element den folgenden Inhalt:
'SYSTEMDUMP DESIRED'+:1-20:'?' .SYSDUMP
'CFSCON:' .CFSCONSOLE
'NO MESSAGE OUTSTANDING ON THE CONSOLE' .NOMSG
'TERMINATE CFSCONSOLE' .EXIT