CL

178. ライブラリー内部の変動を調べるには

ライブラリー内部のファイルやプログラム等の変動が
あったかを調べるのは簡単でライブラリーそのものの
変更日付(13桁)を調べれば良い。

[ TESTLIB 2 : ライブラリーの変更日付時刻を調べる ]

ソースはこちらから

0001.00              PGM                                                             
0002.00              DCL        VAR(&DATE8) TYPE(*CHAR) LEN(8)                       
0003.00              DCL        VAR(&YY4) TYPE(*CHAR) STG(*DEFINED) LEN(4) +         
0004.00                           DEFVAR(&DATE8 1)                                   
0005.00              DCL        VAR(&MM) TYPE(*CHAR) STG(*DEFINED) LEN(2) +          
0006.00                           DEFVAR(&DATE8 5)                                   
0007.00              DCL        VAR(&DD) TYPE(*CHAR) STG(*DEFINED) LEN(2) +          
0008.00                           DEFVAR(&DATE8 7)                                   
0009.00              DCL        VAR(&CHGDATE) TYPE(*CHAR) LEN(13)                    
0010.00              DCL        VAR(&TIME) TYPE(*CHAR) LEN(6)                        
0011.00              DCL        VAR(&HOUR) TYPE(*CHAR) STG(*DEFINED) LEN(2) +        
0012.00                           DEFVAR(&TIME 1)                                    
0013.00              DCL        VAR(&MINUTE) TYPE(*CHAR) STG(*DEFINED) +             
0014.00                           LEN(2) DEFVAR(&TIME 3)                             
0015.00              DCL        VAR(&SECOND) TYPE(*CHAR) STG(*DEFINED) +             
0016.00                           LEN(2) DEFVAR(&TIME 5)                             
0017.00                                                                              
0018.00              RTVOBJD    OBJ(QTRSRC) OBJTYPE(*LIB) CHGDATE(&CHGDATE)          
0019.00              CHGVAR     VAR(&DATE8) VALUE('20' *CAT %SST(&CHGDATE 2 6))      
0020.00              CHGVAR     VAR(&TIME) VALUE(%SST(&CHGDATE 8 6))                 
0021.00              SNDPGMMSG  MSG(' このライブラリーに変動があったのは ' +         
0022.00                           *CAT &YY4 *CAT '/' *CAT &MM *CAT '/' *CAT +        
0023.00                           &DD *CAT ' 日 ' *CAT &HOUR *CAT ':' *CAT +         
0024.00                           &MINUTE *CAT ':' *CAT &SECOND *CAT +  
0025.00                           ' 分です。 ') MSGTYPE(*DIAG)          
0026.00              RETURN                                             
0027.00              ENDPGM                                             

[解説]

0018.00              RTVOBJD    OBJ(QTRSRC) OBJTYPE(*LIB) CHGDATE(&CHGDATE)



で変更日付 &CHGDATEを取得するだけでよい。
変更日付は 13桁で

世紀1桁 + 年2桁 + 月2桁 + 時2桁 + 分2桁 + 秒2桁

の型式である。