Я думаю, вижу, что вы пытаетесь сделать, но сомневаюсь, сработает ли это. Это мои мысли:
- Я когда-либо видел только строку символов & TIME1 (c) , используемую для вывода. Например: OUTREC BUILD (1,11,12, & TIME1 (:))
поместит текущее время в формате ЧЧ: ММ: СС в выходную запись, начиная с позиции 12.
Насколько мне известно, ВРЕМЯ нельзя использовать в выражении ICETOOL / DFSORT COND , как вы указали в своем вопросе.
- Даже если TIME поддерживаются в операторах COND , операторы +/- не поддерживаются, как вы могли бы
видел с ДАТА (например, ДАТА1 + 1 , чтобы получить текущую дату плюс 1 день). Добавление некоторой константы к TIME
не поддерживается.
- Задумывались ли вы над тем, что произойдет, если ваша работа будет выполняться несколько минут
до полуночи? Добавление часа ко времени приводит к переносу на утро следующего дня. В этот момент вы
нужно принять дату в condideration в COND.
Что-то, что может сработать: добавьте предварительный шаг для запуска REXX или какой-либо другой программы. Пусть эта программа
генерировать все или часть
INCLUDE операторы, используемые на следующем шаге ICETOOL. Вот пример процедуры REXX, которая
создаст оператор INCLUDE , аналогичный приведенному в вашем вопросе. Запись
записывается в файл, выделенный для 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 в PDS как: «MY.REXX (FOO)», ваш предварительный шаг
JCL будет выглядеть примерно так:
//RUNREXX EXEC PGM=IKJEFT01
//SYSEXEC DD DSN=MY.REXX,DISP=SHR
//SYSTSPRT DD SYSOUT=A
//SYSTSIN DD *
%FOO
1
/*
//
'1' после% FOO - это количество часов DELTA, указанное в процедуре.