$ OUT="WRITE SYS$OUTPUT" $ $ ExitMessage="Null entry number" $ stat=295386 ! %JBC-E-NOSUCHENT $ e=p1 $ IF e.EQS."" THEN INQUIRE e "Entry" $ IF e.EQS."" THEN GOTO FinExit $ CALL GetField ENTRY_NUMBER $ ExitMessage="Job does not exist? Entry=''ENTRY_NUMBER', expecting ''e'" $ stat=294978 ! %JBC-E-NOSUCHJOB $ IF F$INTEGER(ENTRY_NUMBER).NE.F$INTEGER(e) THEN GOTO FinExit $ $ ExitMessage="New file not found" $ stat=98962 ! RMS$_FNF $ nf=p2 $ IF nf.EQS."" THEN INQUIRE nf "New file specification" $ nf=F$SEARCH(F$PARSE(".COM",nf)) $ IF nf.EQS."" THEN GOTO FinExit $ $ f=nf $ GOSUB JobStateValues $ OKStates=QUI_JOB_HOLDING+QUI_JOB_TIMED_RELEASE+QUI_JOB_PENDING $ action="replaced by" $ $ DoResubmit: $ CALL GetField JOB_STATUS $ ExitMessage="Wrong state for resubmission ''JOB_STATUS'" $ stat=295130 ! %JBC-E-NORESTART $ IF (JOB_STATUS.AND.OKStates).EQ.0 THEN EXIT GOTO FinExit $ ExitMessage="" $ CALL GetField SUBMISSION_TIME $ CALL GetField QUEUE_NAME "" "/QUEUE=" $ CALL GetField JOB_NAME "" "/NAME=""" """" $ CALL GetField NOTE "" "/NOTE=""" """" "" "" "" "~" $ CALL GetField AFTER_TIME "" "/AFTER=""" """" "" "" "" "''SUBMISSION_TIME'" $ CALL GetField CPU_LIMIT "" "/CPUTIME=""" """" "" "" "" " 0 00:00:00.00" $ CALL GetField USERNAME "" "/USER=""" """" "" "" "" 'F$GETJPI("","USERNAME")' $ CALL GetField JOB_RETENTION_TIME "" "/RETAIN=UNTIL=""" """" "" "" "" "17-NOV-1858 00:00:00.00" $ CALL GetField JOB_HOLDING "" "" "" "" "/HOLD" $ CALL GetField JOB_LOG_SPOOL "" "" "" "" "" "/NOPRINT" $ CALL GetField JOB_LOG_DELETE "" "" "" "" "" "/KEEP" $ CALL GetField JOB_RESTART "" "" "" "" "/RESTART" $ CALL GetField JOB_NOTIFY "" "" "" "" "/NOTIFY" $ CALL GetField JOB_RETENTION "" "" "" "" "/RETAIN=ALWAYS" $ CALL GetField JOB_ERROR_RETENTION "" "" "" "" "/RETAIN=ERROR" $ CALL GetField LOG_SPECIFICATION JOB_LOG_NULL "" "" "" "" "/LOG=" $ IF LOG_SPECIFICATION.NES."" $ THEN $ CALL GetField LOG_SPECIFICATION "" "''LOG_SPECIFICATION'" $ LogSpec=LOG_SPECIFICATION-"/LOG=" $ IF F$PARSE(LogSpec).EQS."" THEN LOG_SPECIFICATION="/LOG="+F$PARSE("''NewLog'",LogSpec) $ ENDIF $ Params =="/PARAM=(""" $ CALL GetField Params PARAMETER_1 "~" """,""" "~" $ CALL GetField Params PARAMETER_2 "~" """,""" "~" $ CALL GetField Params PARAMETER_3 "~" """,""" "~" $ CALL GetField Params PARAMETER_4 "~" """,""" "~" $ CALL GetField Params PARAMETER_5 "~" """,""" "~" $ CALL GetField Params PARAMETER_6 "~" """,""" "~" $ CALL GetField Params PARAMETER_7 "~" """,""" "~" $ CALL GetField Params PARAMETER_8 "~" """)" "~" $ Params==Params-"/PARAM=("""","""","""","""","""","""","""","""")" $ olde="''$ENTRY'" $ SUBMITX 'nf' 'AFTER_TIME' 'JOB_NAME' 'JOB_HOLDING' 'QUEUE_NAME' - 'LOG_SPECIFICATION' 'Params' 'JOB_LOG_DELETE' 'JOB_LOG_SPOOL' 'JOB_RESTART' - 'JOB_NOTIFY' 'JOB_RETENTION' 'JOB_ERROR_RETENTION' 'JOB_RETENTION_TIME' 'CPU_LIMIT' - 'NOTE' 'USERNAME' $ IF "''$ENTRY'".NES.olde $ THEN $ new=$ENTRY $ DELETE/ENTRY='e' $ OUT "Entry ''e' ''action' entry ''new'" $ SHOW ENTRY/FULL 'new' $ stat=1 $ ELSE $ OUT "Failed to replace entry ''e'" $ ENDIF $ FinExit: $ IF .NOT.Stat.AND."''ExitMessage'".NES."" THEN OUT ExitMessage $ EXIT 'stat' $ $ GetField: SUBROUTINE $ sym=p1 $ par=p2 $ prefix=p3 $ IF prefix.EQS."~" THEN prefix='sym' $ suffix=p4 $ ifnull=p5 $ IF ifnull.EQS."~" THEN ifnull='sym' $ iftrue=p6 $ iffalse=p7 $ ignore=p8 $ IF sym.EQS."" THEN EXIT $ IF par.EQS."" THEN par=sym $ val=F$GETQUI("DISPLAY_ENTRY",par,e) $ IF val.NES."" $ THEN $ IF val.NES.ignore $ THEN $ IF iftrue+iffalse.NES."" $ THEN $ IF val $ THEN $ 'sym'==iftrue $ ELSE $ 'sym'==iffalse $ ENDIF $ ELSE $ 'sym'==prefix+val+suffix $ ENDIF $ ELSE $ 'sym'=="" $ ENDIF $ ELSE $ IF ignore.NES."~" THEN 'sym'==ifnull+suffix $ ENDIF $ ENDSUBROUTINE $ $ JobStateValues: $ QUI_JOB_ABORTING =1 $ QUI_JOB_EXECUTING =2 $ QUI_JOB_HOLDING =4 $ QUI_JOB_INACCESSIBLE =8 $ QUI_JOB_REFUSED =16 $ QUI_JOB_REQUEUE =32 $ QUI_JOB_RESTARTING =64 $ QUI_JOB_RETAINED =128 $ QUI_JOB_STARTING =256 $ QUI_JOB_TIMED_RELEASE=512 $ QUI_JOB_SUSPENDED =1024 $ QUI_JOB_PENDING =2048 $ QUI_JOB_UNDEFINED =4096 $ QUI_JOB_STALLED =8192 $ QUI_JOB_INCOMPLETE =16384 $ QUI_JOB_COMPLETING =32768 $ RETURN