***************************************************************** * * INACTR * * Written By: Michael Ryan, Ryan Technology Resources * On: 12-19-2001 * * Changes: * On: * * Process inactive terminals. * This procedure will accept a job name, user and number as * input and retrieve job information. * * A decision is made based on the job name (terminal), user and * program being executed. * ***************************************************************** H NoMain H Option(*NoDebugIO:*SrcStmt) FINACTL1 IF E K Disk UsrOpn FUTL018L2 UF E K Disk UsrOpn FINACTLOGP O E Disk UsrOpn * QCMDEXC prototype D Qcmdexc PR ExtPgm('QCMDEXC') D Cmd 512A Options(*VarSize) D Const D Cmdlen 15P 5 Const DInact PR 1 DCD 10 DCD 10 DCD 6 * QUSRJOBI prototype D ListJob PR ExtPgm('QUSRJOBI') D 512A Options(*VarSize) D Const D 9B 0 Const D 10 Const D 26 Const D 10 Const D 17 Options(*VarSize) D Const PInact B Export DInact PI 1 DCD JobName 10 DCD JobUser 10 DCD Number 6 * Data structure for returned information. D ListRcvdInfo DS D LRIBytesRet 9B 0 D LRIBytesAvail 9B 0 D LRIJobName 10 D LRIUserName 10 D LRIJobNumber 6 D LRIJobIntID 16 D LRIJobStatus 10 D LRIJobType 1 D LRIJobSubType 1 D LRIJobSBSD 10 D LRIRunPrior 9B 0 D LRIPoolID 9B 0 D LRIProcTime 9B 0 D LRIAuxIO 9B 0 D LRIIntTran 9B 0 D LRIRespTime 9B 0 D LRIFuncType 1 D LRIFuncName 10 D LRIActStatus 4 D LRIReserved 1 D LRIDBLocks 9B 0 D LRINonDBLocks 9B 0 D LRIIntLocks 9B 0 D LRIDBTime 9B 0 D LRINonDBTime 9B 0 D LRIIntTime 9B 0 D LRICurrPoolID 9B 0 D LRIThreadCnt 9B 0 * List Job Information - Used in QUSLJOBI D ListJobSize S 9B 0 Inz(%Size(ListRcvdInfo)) D ListJobFormat S 10 Inz('JOBI0200') D ListJobName S 26 Inz(*Blanks) D ListJobIntID S 16 Inz(*Blanks) * Standard error data structure D QUSBN DS D QUSBNB 9B 0 D QUSBNC 9B 0 D QUSBND 7 D QUSBNF 1 D QUSBNG 1 D ReturnValue 1 D GenericUser 10 D JobNumber 6 0 D UtlErr N D Cmd 512A D Cmdlen 15P 5 C UTL018L2F Klist DCC Kfld JobNumber DCC Kfld JobUser DCC Kfld JobName C Move Number JobNumber C Eval ReturnValue = *Blanks C Open INACTL1 C JobUser Chain INACTL1 C If %Found(INACTL1) C Eval ReturnValue = INACTION C EndIf C If ReturnValue = *Blanks C Eval GenericUser = %SubSt(JobUser:1:3) C GenericUser Chain INACTL1 C If %Found(INACTL1) C Eval ReturnValue = INACTION C Else C Eval ReturnValue = 'N' C EndIf C EndIf C Close INACTL1 * Only for Endjob processing. C If ReturnValue = 'E' C ExSr ClrUTL018 C ExSr LogInact C EndIf C Return ReturnValue C ClrUTL018 BegSr C Eval UtlErr = *Off C Monitor C Open UTL018L2 C On-Error C Eval UtlErr = *On C EndMon C If Not(UtlErr) C UTL018L2F SetLL UTL018L2 C If %Equal(UTL018L2) C UTL018L2F ReadE UTL018L2 C DoW Not(%Eof(UTL018L2)) C Delete UTL018R C UTL018L2F ReadE UTL018L2 C EndDo C EndIf C Else C CallP QCmdExc('DLYJOB DLY(600)':15) C EndIf C If %Open(UTL018L2) C Close UTL018L2 C EndIf C EndSr C LogInact BegSr C Open INACTLOGP C Eval INLUSR = JobUser C Eval INLJOB = JobName C Eval INLNUM = Number C Time INLTIM C Eval INLACT = ReturnValue C Write INACTLOGR C Close INACTLOGP C EndSr * NOTE: This subroutine is not currently being used... C ProgName BegSr C Eval ListJobName = Jobname + C JobUser + C Number C CallP ListJob(ListRcvdInfo : C ListJobSize : C ListJobFormat : C ListJobName : C ListJobIntID : C QUSBN) C EndSr PInact E