Использование выражений в журналах
В журналах есть возможность настраивать не только простые атрибуты (name, counterparty и др.), но и выражения.
Выражение- набор функций, операторов, скобок и атрибутов, который позволяет вычислить значение на основе данных в БД.
Примечание
Вычисляемые атрибуты, которые описаны в типе, имеют схожую с выражениями функциональность и позволяют более гибко настраивать значения атрибутов, но у них есть ограничения при поиске, группировке и сортировке.
Эти операции доступны, только если для вычисляемого атрибута настроено сохранение в БД, но и в этом случае есть ограничение - их перерасчет будет произведен, только когда произойдет обновление сущности.
Если обновляются связанные сущности или глобальные объекты, которые использовались для вычисления, то вычисляемый атрибут не пересчитается. В отличии от вычисляемых атрибутов, выражения в журнале позволяют настраивать вычисления, которые вычисляются в момент запроса для каждой записи, что позволяет искать, группировать и сортировать по ним с гарантией актуальности данных.
Выражения настраиваются в дополнительных настройках колонки в поле «Атрибут для загрузки».
|
|
Для настройки выражения нужно, чтобы в содержимом этого поля была или функция или выражение полностью обернутое в скобки.
Примеры
Расчет разницы между датами в днях
ceil(((date_part('epoch', date0) - date_part('epoch', date1)) / (60 * 60 * 24)))
date0**и **date1 - атрибуты с датой или датой_временем между которыми происходит расчет.
ceil - округлить до ближайшего целого, которое больше или равно аргументу. Вместо этой функции можно использовать:
floor - отбросить дробную часть
round - округлить результат до ближайшего целого
Произвольные математические операции
ceil(field0 + field1)
(field0 + field1)
(10 * (field0 + field1))
field0 и field1 - это атрибуты сущности. Сложность выражений и количество атрибутов не ограничено.
Получить месяц и год
to_char(date0, 'MM.YYYY')
date0 - это атрибут с датой или датой_временем.