Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M Новый топик    Ответить
 ZEN Осторожно с Timestamp InitialExpression!  [new]
kolesov
Member

Откуда: Владивосток
Сообщений: 799
Вроде простая штука:

Property DateTime As %TimeStamp [ InitialExpression = {$zdt($zts,3)} ];

А вот нет. В БД окажется таймстамп, соответствующий времени ОТКРЫТИЯ ZEN-формы для заполнения, а не время СОХРАНЕНИЯ.

Получается, что Timestamp лучше иметь без InitialExpression.

Я огреб в ситуации, когда некий инструмент проверял "новые" записи (за последние 30 секунд) - дальше сами понимаете, как было печально ;)

ЗЫ: Что-то мне подсказывает, что подобная история будет с любым MVC или подобным механизмом, не только с ZEN.
1 май 19, 05:30    [21876115]     Ответить | Цитировать Сообщить модератору
 Re: ZEN Осторожно с Timestamp InitialExpression!  [new]
vassil
Member

Откуда: Хабаровск
Сообщений: 112
Всё правильно. Вызываешь форму, создается объект ZEN-формы и соответствующий хранимый объект. InitialExpression срабатывает на момент создания объекта.
1 май 19, 06:59    [21876121]     Ответить | Цитировать Сообщить модератору
 Re: ZEN Осторожно с Timestamp InitialExpression!  [new]
kolesov
Member

Откуда: Владивосток
Сообщений: 799
vassil
Всё правильно. Вызываешь форму, создается объект ZEN-формы и соответствующий хранимый объект. InitialExpression срабатывает на момент создания объекта.


В том-то и дело, что не "соответствующий хранимый объект", а лишь проекция. Вроде и ИС правы, и ерунда в итоге... Несовместимы они, короче ;)
1 май 19, 08:37    [21876133]     Ответить | Цитировать Сообщить модератору
 Re: ZEN Осторожно с Timestamp InitialExpression!  [new]
ser_shu
Member

Откуда: Хабаровск
Сообщений: 243
kolesov,

Timestamp время сохранение объекта логично в %OnBeforeSave фиксировать.
1 май 19, 12:27    [21876246]     Ответить | Цитировать Сообщить модератору
 Re: ZEN Осторожно с Timestamp InitialExpression!  [new]
ser_shu
Member

Откуда: Хабаровск
Сообщений: 243
kolesov
Я огреб в ситуации, когда некий инструмент проверял "новые" записи (за последние 30 секунд) - дальше сами понимаете, как было печально ;)

В такой ситуации логичнее вести внешний протокол, прописывая его в %OnAfterSave типа
set ^Log($horolog,$classname(),..%Id())=""
Тогда можно легко просмотреть с конца, что и сколько за последние 30 секунд создалось или изменилось. По флагу insert можно отличить новые записи от старых.
2 май 19, 01:12    [21876634]     Ответить | Цитировать Сообщить модератору
 Re: ZEN Осторожно с Timestamp InitialExpression!  [new]
ser_shu
Member

Откуда: Хабаровск
Сообщений: 243
ser_shu
В такой ситуации логичнее вести внешний протокол, прописывая его в %OnAfterSave типа
set ^Log($horolog,$classname(),..%Id())=""
Тогда можно легко просмотреть с конца, что и сколько за последние 30 секунд создалось или изменилось. По флагу insert можно отличить новые записи от старых.

Извиняюсь, $horolog здесь неудобно, так как секунды через запятую, я имел в виду
set ^Log((дата),(время в секундах),$classname(),..%Id())=""

или можно set ^Log((дата),(время в секундах),$classname(),..%Id())=(время открытия объекта)($username),
тогда можно узнать кто, когда и как долго терзал объект в ZENе :)
2 май 19, 01:50    [21876635]     Ответить | Цитировать Сообщить модератору
Все форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M Ответить