Цитата:
Сообщение от
someOne
5. Обновил настройки списков пакетных заданий - время запуска на час вперед + изменение значений часового пояса.
это можно сделать так
X++:
batchJob batchJob;
int i;
TimeZone batchTimeZone;
;
ttsbegin;
while select forupdate batchJob
{
batchTimeZone = conPeek(batchJob.RecurrenceData, 9);
if (batchTimeZone == TimeZone::GMTPLUS0300MOSCOW_STPETERSBURG_VOLGOGRAD)
{
batchJob.OrigStartDateTime = DateTimeUtil::addHours(batchJob.OrigStartDateTime, 1);
batchJob.RecurrenceData = conPoke(batchJob.RecurrenceData, 9, TimeZone::GMTPLUS0300MOSCOW_STPETERSBURG_VOLGOGRAD_RTZ2);
batchJob.update();
i++;
}
}
ttscommit;
info(strFmt("обновлено %1 пакетных заданий", i));
Этого недостаточно. Вы забыли, что есть еще системное (скрытое) поле batchJob.OrigStartDateTimeTZID, которое заполняется один раз в момент создания записи и больше уже никогда не изменяется. Изменить его можно только прямой командой на SQL-сервере.
PHP код:
update BatchJob
set OrigStartDateTimeTZID = 86002
,OrigStartDateTime = dateAdd(hour, 1, OrigStartDateTime)
where OrigStartDateTimeTZID = 61003
and OrigStartDateTime >= '20141026'
Кроме того, "для порядка" надо сделать аналогичную замену в истории выполнения пакетных заданий
PHP код:
update BatchJobHistory
set OrigStartDateTimeTZID = 86002
,OrigStartDateTime = dateAdd(hour, 1, OrigStartDateTime)
where OrigStartDateTimeTZID = 61003
and OrigStartDateTime >= '20141026'