*DECK JOBQTF
*CWEOR,00 
*WIDTH,80,0 
JOBQTF
TITLE(JOB) JOBQTF - QTF RELEASE DEFAULT JOB SKELETON. 
.*
.*
.*  THIS IS THE STARTUP JOB FOR QTF.
.*
.*    THIS RECORD MUST BE ADDED TO THE NAMSTRT FILE FOR QTF 
.*    TO BE STARTED WITH THE REST OF THE NETWORK. 
.*
.*    STATEMENTS OF THE FORM
.*               JOB(JOBQTF,QT,SY,NS) 
.*    MUST BE ADDED TO ALL PARAMETER RECORDS TO SELECT THIS RECORD
.*    TO BE PROCESSED BY NAMI AND SUBMITTED TO START QTF. 
.*
.*    THE PERMANENT FILES THAT QTF DUMPS AND TRACES ARE WRITTEN TO
.*    WILL BE COLLECTED BY THE COLLECTOR JOB ALONG WITH THE 
.*    REST OF THE THE NETWORK TRACES AND DUMPS. 
.*
.*
.*  PERMANENT FILES FOR RUN DATA ARE DEFINED AT JOB TERMINATION.
.*
.*       TFN       LFN       PFN       CONTENTS 
.*
.*       OUTPUT    QTFOUT    QTD0FIL   OUTPUT FROM JOB (DMP,DMD,ETC). 
.*       ZZZZDMB   QTFDMB    QTD2FIL   BINARY FIELD LENGTH DUMPS. 
.*                 QTFLST    QTL0FIL   JOB DAYFILE. 
.*       ZZZZZSN   QTSTATS   QTS0FIL   AIP STATISTICS FILE. 
.*       ZZZZZDN   TRCLEV1             AIP TRACE FILE WRITTEN BY QTF. 
.*                 TRCLEV3   QTT0FIL   PERMANENT AIP TRACE FILE.
.*
.*
.*
QTF_CIN,T77777.    QTF RELEASE DEFAULT JOB. 
CLASS(CT) 
NORERUN.
DISPLAY(DATE) 
DISPLAY(HID)
DISPLAY(OT) 
DISPLAY(SC) 
ASSIGN(MS,ZZZZDMB)
ASSIGN(MS,ZZZZZSN)
ASSIGN(MS,ZZZZZDN)
.*
.*  START QTF.
.*
QTF(NAM)
.*
.*  QTF NORMAL TERMINATION - CHECK FOR PREVIOUS FAILURE.
.*
USER(UNM,PWM) 
SKIP(BAILOUT) 
.*
EXIT.  QTF
.*
.*
.*  QTF FAILED - SAVE RUN DATA IF REQUIRED. 
.*
.*
DISPLAY(EF) 
USER(UNM,PWM) 
IF(EF.NE.SYE,BAILOUT) 
SKIP(SAVFILS) 
.*
ENDIF(BAILOUT)
ATTACH(QTFLST=QTL0FIL/NA) 
IF(.NOT.FILE(QTFLST,AS),SAVFILS)
.*
.*  NO PREVIOUS FAILURE, DO NOT SAVE RUN DATA ON PERMANENT FILES. 
.*
RETURN(OUTPUT)
SETJOB(DC=NO) 
EXIT.  QTF
.*
.*  SAVE RUN DATA IF AVAILABLE. 
.*
ENDIF(SAVFILS)
.*
REWIND(OUTPUT)
SKIPR(OUTPUT) 
IF(.NOT.FILE(OUTPUT,EOI),NOUTPUT) 
WHILE(1,OUTLOOP)
ATTACH(QTFOUT=QTD0FIL/NA,M=W) 
IF(.NOT.FILE(QTFOUT,AS),GOTFILE)
DEFINE(QTFOUT=QTD0FIL/NA) 
IF(.NOT.FILE(QTFOUT,AS),GOTFILE)
ENDW(OUTLOOP) 
.*
ENDIF(GOTFILE)
REWIND(OUTPUT)
SKIPEI(QTFOUT)
COPYEI(OUTPUT,QTFOUT) 
RETURN(OUTPUT,QTFOUT) 
ELSE(NOUTPUT) 
RETURN(OUTPUT)
ENDIF(NOUTPUT)
.*
REWIND(ZZZZDMB) 
SKIPR(ZZZZDMB)
IF(.NOT.FILE(ZZZZDMB,EOI),NOZZDMB)
WHILE(1,DMBLOOP)
ATTACH(QTFDMB=QTD2FIL/NA,M=W) 
IF(.NOT.FILE(QTFDMB,AS),GOTFILE)
DEFINE(QTFDMB=QTD2FIL/NA) 
IF(.NOT.FILE(QTFDMB,AS),GOTFILE)
ENDW(DMBLOOP) 
.*
ENDIF(GOTFILE)
REWIND(ZZZZDMB) 
SKIPEI(QTFDMB)
COPYEI(ZZZZDMB,QTFDMB)
RETURN(ZZZZDMB,QTFDMB)
ENDIF(NOZZDMB)
.*
REWIND(ZZZZZSN) 
SKIPR(ZZZZZSN)
IF(.NOT.FILE(ZZZZZSN,EOI),NOSTATS)
WHILE(1,STATSLP)
ATTACH(QTSTATS=QTS0FIL/NA,M=W)
IF(.NOT.FILE(QTSTATS,AS),GOTFILE) 
DEFINE(QTSTATS=QTS0FIL/NA)
IF(.NOT.FILE(QTSTATS,AS),GOTFILE) 
ENDW(STATSLP) 
.*
ENDIF(GOTFILE)
REWIND(ZZZZZSN) 
SKIPEI(QTSTATS) 
COPYEI(ZZZZZSN,QTSTATS) 
RETURN(ZZZZZSN,QTSTATS) 
ENDIF(NOSTATS)
.*
RENAME(TRCLEV1=ZZZZZDN) 
REWIND(TRCLEV1) 
SKIPR(TRCLEV1)
IF(.NOT.FILE(TRCLEV1,EOI),NOTRACE)
WHILE(1,TRCLP2) 
ATTACH(TRCLEV3=QTT0FIL/NA,M=W)
IF(.NOT.FILE(TRCLEV3,AS),GOTFILE) 
DEFINE(TRCLEV3=QTT0FIL/NA)
IF(.NOT.FILE(TRCLEV3,AS),GOTFILE) 
ENDW(TRCLP2)
.*
ENDIF(GOTFILE)
SKIPEI(TRCLEV3) 
REWIND(TRCLEV1) 
COPYBF(TRCLEV1,TRCLEV3) 
BKSP(TRCLEV3) 
SKIPR(TRCLEV3)
IF(.NOT.FILE(TRCLEV3,EOF))  WRITEF(TRCLEV3) 
RETURN(TRCLEV1,TRCLEV3) 
ENDIF(NOTRACE)
.*
WHILE(1,LSTLOOP)
ATTACH(QTFLST=QTL0FIL/NA,M=W) 
IF(.NOT.FILE(QTFLST,AS),GOTFILE)
DEFINE(QTFLST=QTL0FIL/NA) 
IF(.NOT.FILE(QTFLST,AS),GOTFILE)
ENDW(LSTLOOP) 
.*
ENDIF(GOTFILE)
SKIPEI(QTFLST)
NOTE(DFL,NR)/QTDA_CIN 
DAYFILE(DFL)
PACK(DFL) 
COPYEI(DFL,QTFLST)
.*
SETJOB(DC=NO) 
EXIT.  QTF
*WIDTH
