バッチジョブの最後に、このコマンドを一発。プログラム名だけを指定してください。そのジョブの経過時間とか、後で役立ちそうな情報をファイル:ZZJOBMPに落とします。サブファイルのサンプルプログラムで見てみてください。開始時間は、ジョブの活動開始時間を取り出して、終了時間は、このコマンドを実行した時間を使っています。
joblog.txt
------------
JOBLOG
------------
CMD PROMPT('投入ジョブの経過時間累積')
PARM KWD(PGM) TYPE(*NAME) LEN(10) MIN(1) +
PROMPT('投入されたプログラム名')
------------
ZZJBLG
------------
H**************************************************************************
H* *
H* ジョブ活動履歴セット *
H* *
H* PROGRAMMER . . . . . KAKEFUDA *
H* CREATION . . . . . . 1996/12/18 *
H* MODIFICATION . . . . *
H* *
H* *
H**************************************************************************
H DATEDIT(*YMD/)
FZZJOBMP O A E DISK
D***************************************************************************
D* D E F I N E D A T A - S T R U C T U R E *
D***************************************************************************
D DS INZ
D DSDTTM 1 14 0
D DSQTIM 1 6 0
D DSQDAT 7 14 0
D*
D USRTV DS
D RCVLEN 1 4B 0
D*
D JBI300 DS
D YYJOB 9 18
D YYUSR 19 28
D YYJNO 29 34
D YYJOBQ 63 72
D YYJBQL 73 82
D*
D JBI400 DS
D ENTCEN 63 63
D ENTYMD 64 69
D ENTHMS 70 75
D*
D ACTCEN 76 76
D ACTYMD 77 82
D ACTHMS 83 88
D*
D YYSBJB 254 263
D YYSBUS 264 273
D YYSBJ# 274 279
D SBMQNA 280 289
D***************************************************************************
D* D E F I N E C O N S T A N T *
D***************************************************************************
D #J300 C CONST('JOBI0300')
D #J400 C CONST('JOBI0400')
D***************************************************************************
D* S T A N D A L O N E F I E L D S *
D***************************************************************************
D*
D YYMDSTR S D
D HMSSTR S T
D YYMDEND S D
D HMSEND S T
D*
D W1DAY S 15 0
D W1DAYSEC S 15 0
D W1SECS S 15 0
D W1ELAPSED S 15 0
D FMTRCD S 8
D IJOBID S 16
D JOBINF S 26
D W1ELPH S 15 9
D W1ELPM S 15 5
D W1ELPS S 15 0
C***************************************************************************
C* DEFINITION MODULE ( PLIST FIELD KLIST ) *
C***************************************************************************
C*
C* DEFINE PLIST
C*
C *ENTRY PLIST :
C PARM YYPGM :
C PARM YYTEXT :
C***************************************************************************
C* M A I N - R O U T I N E *
C***************************************************************************
C EXSR @300 :
C EXSR @400 :
C*
B001 C IF (NOT *IN95) AND :
*001 C (NOT *IN96) :
001 C EXSR @WRT :
E001 C ENDIF :
C*
C MOVE *ON *INLR :
C RETURN :
C***************************************************************************
C* S U B - R O U T I N E *
C***************************************************************************
C*-------------------------------------------------------------------------*
C @300 BEGSR :
C*-------------------------------------------------------------------------*
C MOVEL #J300 FMTRCD :
C Z-ADD 82 RCVLEN :
C MOVE *BLANK IJOBID :
C*
C CALL 'QUSRJOBI' 95 :
C PARM JBI300 :
C PARM RCVLEN :
C PARM FMTRCD :
C PARM '*' JOBINF :
C PARM IJOBID :
C*
C ENDSR :
C*-------------------------------------------------------------------------*
C @400 BEGSR :
C*-------------------------------------------------------------------------*
C MOVEL #J400 FMTRCD :
C Z-ADD 289 RCVLEN :
C*
C CALL 'QUSRJOBI' 96 :
C PARM JBI400 :
C PARM RCVLEN :
C PARM FMTRCD :
C PARM '*' JOBINF :
C PARM IJOBID :
C*
C ENDSR :
C*-------------------------------------------------------------------------*
C @WRT BEGSR :
C*-------------------------------------------------------------------------*
C MOVE ENTYMD YYENTD :ジョブ入力日付
C MOVE ENTHMS YYENTT :ジョブ入力時間
B001 C IF (ENTCEN = '0') :
001 C ADD 19000000 YYENTD :
+001 C ELSE :
001 C ADD 20000000 YYENTD :
E001 C ENDIF :
C*
C MOVE ACTYMD YYJBSD :活動開始日付
C MOVE ACTHMS YYJBST :活動開始時間
B001 C IF (ACTCEN = '0') :
001 C ADD 19000000 YYJBSD :
+001 C ELSE :
001 C ADD 20000000 YYJBSD :
E001 C ENDIF :
C*
C TIME DSDTTM :
C MOVE DSQDAT YYJBED :活動終了日付
C Z-ADD DSQTIM YYJBET :活動終了時間
C*
C MOVE YYJBSD YYMDSTR :
C MOVE YYJBST HMSSTR :
C MOVE YYJBED YYMDEND :
C MOVE YYJBET HMSEND :
C*
C*経過時間の計算
C*
C YYMDEND SUBDUR YYMDSTR W1DAY:*D
C HMSEND SUBDUR HMSSTR W1SECS:*S
C W1DAY MULT 86400 W1DAYSEC 24 X 60 X 60
C EVAL W1ELAPSED = W1DAYSEC + W1SECS
C MOVE W1ELAPSED W1ELPS :経過秒
C*
C W1ELPS DIV 60 W1ELPM :経過分
C W1ELPM DIV 60 W1ELPH :経過時間
C*
C Z-ADD W1ELPS YYELPS
C Z-ADD W1ELPM YYELPM :経過分
C Z-ADD W1ELPH YYELPH :経過時間
C*
C WRITE ZZJOBMR :
C CLEAR ZZJOBMR :
C*
C ENDSR :
------------
ZZJBLGCL
------------
/*------------------------------------------------------------------------*/
/* */
/* ジョブ経過時間スタンプ */
/* */
/* PROGRAMMER . . . . . KAKEFUDA */
/* CREATION . . . . . . 1996/12/18 */
/* MODIFICATION . . . . */
/* */
/* */
/*------------------------------------------------------------------------*/
PGM (&PGM)
DCL &PGM *CHAR 10
DCL &PGMTEXT *CHAR 50
MONMSG CPF0000
IF (&PGM^=' ') DO
RTVOBJD &PGM *PGM TEXT(&PGMTEXT)
MONMSG CPF0000
ENDDO
CALL ZZJBLG (&PGM &PGMTEXT)
RETURN
ENDPGM
------------
ZZJOBMP
------------
A**************************************************************************
A* *
A* 投入ジョブ履歴 *
A* *
A* PROGRAMMER . . . . . KAKEFUDA *
A* CREATION . . . . . . 1996/12/18 *
A* MODIFICATION . . . . *
A* *
A* *
A**************************************************************************
A*------------------------------------*
A R ZZJOBMR
A*------------------------------------*
A YYJOB 10 COLHDG('ジョブ')
A YYUSR 10 COLHDG('ユーザー')
A YYJNO 6 COLHDG('ジョブ番号')
A*
A YYENTD 8 0 COLHDG('ジョブ入力日付')
A EDTWRD(' / / ')
A YYENTT 6 0 COLHDG('ジョブ入力時間')
A EDTWRD(' : : ')
A*
A YYJBSD 8 0 COLHDG('活動開始日付')
A EDTWRD(' / / ')
A YYJBST 6 0 COLHDG('活動開始時間')
A EDTWRD(' : : ')
A*
A YYJBED 8 0 COLHDG('活動終了日付')
A EDTWRD(' / / ')
A YYJBET 6 0 COLHDG('活動終了時間')
A EDTWRD(' : : ')
A*
A YYELPS 7 0 COLHDG('経過秒')
A YYELPM 9 2 COLHDG('経過分')
A YYELPH 9 2 COLHDG('経過時間')
A*
A YYJOBQ 10 COLHDG('ジョブ待ち行列名')
A YYJBQL 10 COLHDG('JOBQライブラリー名')
A YYSBJB 10 COLHDG('実行依頼元' 'ジョブ')
A YYSBUS 10 COLHDG('実行依頼元' 'ユーザー')
A YYSBJ# 6 COLHDG('実行依頼元' 'ジョブ')
A*
A YYPGM 10 COLHDG('プログラム')
A TEXT('自分でセット')
A YYTEXT 50 COLHDG('摘要')
A TEXT('自分でセット')
|