musrsim/mutrack/com/SUB_LIST.COM

83 lines
3.4 KiB
Plaintext

$!==============================================================================
$! KOMMANDOPROZEDUR FUER DAS SUBMITTEN VON 'INPUTFILE-LISTEN' VON MUTRACK UND
$! ACCEL MITTELS 'SUBMULISTn' BZW. 'SUBACLISTn'.
$!==============================================================================
$! 1. LOESCHE GEGEBENENFALLS DAS .MESSAGE FILE
$! 2. IN DER SCHLEIFE: VERSUCHE DAS .MESSAGE-FILE ZU OEFFNEN
$! 3. GELINGT DIES NICHT, SO WURDE DIE KOMMANDOPROZEDUR GERADE ERST GESTARTET.
$! EIN PROGRAMMDURCHLAUF WIRD DANN AUF JEDEN FALL PORBIERT.
$! 4. LIES BEI NEUEM VERSUCH ERST DIE NUMMER DES ZULETZT ABGEARBEITETEN INPUT-
$! FILES. IST DIESE = 1, SO LOESCHE DAS .MESSAGE FILE UND BEENDE PROZEDUR
$!==============================================================================
$! P1 = KUERZEL DES PROGRAMMES = "MU" bzw. "AC"
$! P2 = PROGRAMMAUFRUF = "MUTRACK" bzw. "ACCEL"
$! P3 = QUEUE
$! P4 = NUMMER DER INPUTLISTE (WAHRSCHEINLICH AUF 1-9 EINGESCHRAENKT)
$! P5 = QUEUE-ENTRY, AUF DEN SYNCHRONISIERT WERDEN SOLL
$!==============================================================================
$! Definition der Filenamen:
$ INPUTLISTNAME = "LIST''P4'"
$ COMFILENAME = "SYS$SCRATCH:'P1'_LIST'P4'.COM"
$ MESSFILENAME = "SYS$SCRATCH:''P1'_LIST''P4'.MESSAGE"
$!
$! Oeffnen des files fuer die zu submittende Kommandoprozedur:
$ FILE = F$SEARCH("''COMFILENAME'")
$ IF FILE .NES. "" THEN DELETE 'COMFILENAME'.* /NOCON
$ OPEN /WRITE comfile 'COMFILENAME'
$ OUT := WRITE COMFILE
$!
$! Erstellen der zu submittenden Kommandoprozedur:
$ OUT "$! DIESE KOMMANDOPROZEDUR WURDE DURCH 'SUB_LIST.COM' ERSTELLT UND WIRD
$ OUT "$! NUR TEMPORAER BENOETIGT, BIS DER DURCH ""$ SUB''P1'LIST ''P4'"" GESTARTETE
$ OUT "$! BATCHJOB ABGEARBEITET IST. BEI NORMALEM ENDE DES BATCHJOBS WIRD DIESES
$ OUT "$! FILE ZUM SCHLUSS GELOESCHT!"
$ OUT "$!=============================================================================
$ OUT "$ SET NOON
$ OUT "$!
$ IF P5 .NES. ""
$ THEN
$ OUT "$ SYNCHRONIZE /ENTRY = ''P5'
$ OUT "$!
$ ENDIF
$ OUT "$ DEFINE/NOLOG INPUTLISTNAME ''INPUTLISTNAME'"
$ OUT "$! in case a privious submitted batchjob didn't end properly:
$ OUT "$ FILE = F$SEARCH(""''MESSFILENAME'"")
$ OUT "$ IF FILE .NES. """" THEN DELETE ''MESSFILENAME'.* /NOCON
$ OUT "$!
$ OUT "$ FIRSTTIME = ""TRUE""
$ OUT "$ LOOP_START:
$ OUT "$ OPEN /SHARE /READ /ERROR=OPEN_ERROR messagefile ''MESSFILENAME'
$ OUT "$ READ messagefile FILENR
$ OUT "$ CLOSE messagefile
$ OUT "$ IF (FILENR.EQ.1) THEN GOTO FINISH
$ OUT "$!
$ OUT "$ PROG_CALL:
$ OUT "$ ''P2'
$ OUT "$ GOTO LOOP_START
$ OUT "$!
$ OUT "$ FINISH:
$ OUT "$ FILE = F$SEARCH(""''MESSFILENAME'"")
$ OUT "$ IF FILE .NES. """" THEN DELETE ''MESSFILENAME'.* /NOCON
$ OUT "$ WRITE SYS$OUTPUT ""''P1'_LIST''P4' FINISHED PROPERLY""
$ OUT "$ EXIT
$ OUT "$!
$ OUT "$!------------------------------------------------------------------------------
$ OUT "$ OPEN_ERROR:
$ OUT "$ IF (FIRSTTIME.EQS.""TRUE"")
$ OUT "$ THEN
$ OUT "$ FIRSTTIME = ""FALSE""
$ OUT "$ GOTO PROG_CALL
$ OUT "$ ELSE
$ OUT "$! in spite of the program has already been run there is no .MESSAGE file
$ OUT "$! => all input files have already been done => exit
$ OUT "$ GOTO FINISH
$ OUT "$ ENDIF
$ OUT "$!------------------------------------------------------------------------------
$ CLOSE COMFILE
$!
$! Submitten der Kommandoprozedur:
$ SUBMIT/DELETE/NOTIFY/NOPRINT/QUEUE='P3'/NAME='P1'LIST'P4' -
/LOG_FILE='P2'$OUTdirectory 'COMFILENAME'
$!
$ EXIT