あなたがやろうとしていることはわかると思いますが、うまくいくかどうかは疑問です。これらは私の考えです:
- 出力に使用される&TIME1(c)文字列しか見たことがありません。例: OUTREC BUILD(1,11,12,& TIME1 (:))
は、現在の時刻を HH:MM:SS 形式で、位置 12 から始まる出力レコードに配置します。質問で示したように、ICETOOL/DFSORT CONDステートメント。
- CONDステートメント内でTIMEがサポートされていたとしても、 DATEで見られたように +/- 演算子はサポートされていません(たとえば、現在の日付に 1 日を加えた日付を取得するDATE1+1 )。TIMEへの定数の追加
はサポートされていません。
- 真夜中の数分前にジョブが実行されたらどうなるか、考えたことはありますか? 時刻に 1 時間を追加すると、翌日の朝に繰り越されます。その時点で、COND で日付を考慮に入れる必要があります。
動作する可能性のあるもの: REXX またはその他のプログラムを実行するための事前ステップを追加します。このプログラムで、後続の ICETOOL ステップで使用されるINCLUDEステートメントのすべてまたは一部を生成し
ます。以下は、質問で指定されたものと同様のINCLUDEステートメントを作成する REXX プロシージャーの例です。レコードは、DD CNTLREC に割り当てられたファイルに書き込まれます。
/* REXX */
PULL DELTA /* Number of hours to add to current time */
PARSE VALUE TIME('N') WITH HH ':' MM ':' SS /* current time */
HH = LEFT((HH + DELTA) // 24, 2, '0') /* add DELTA, check rollover */
QUEUE " INCLUDE COND=(12,8,CH,GE,C'"HH":"MM":"SS"'),"
EXECIO * DISKR CNTLREC(FINIS
EXIT
このファイルを適切な ICETOOL 制御ステートメント DD に割り当てると、うまくいくはずです。
警告:この例では、真夜中にロールオーバーが発生した場合に COND パラメーターに必要となる可能性のある調整は扱っていません。
注:上記の REXX プロシージャーを「MY.REXX(FOO)」として PDS に保管した場合、プレステップ JCL は次のようになります。
//RUNREXX EXEC PGM=IKJEFT01
//SYSEXEC DD DSN=MY.REXX,DISP=SHR
//SYSTSPRT DD SYSOUT=A
//SYSTSIN DD *
%FOO
1
/*
//
%FOO に続く '1' は、手順で参照される DELTA 時間数です。