Использование выражений в журналах

В журналах есть возможность настраивать не только простые атрибуты (name, counterparty и др.), но и выражения.

Выражение- набор функций, операторов, скобок и атрибутов, который позволяет вычислить значение на основе данных в БД.

Примечание

Вычисляемые атрибуты, которые описаны в типе, имеют схожую с выражениями функциональность и позволяют более гибко настраивать значения атрибутов, но у них есть ограничения при поиске, группировке и сортировке.

Эти операции доступны, только если для вычисляемого атрибута настроено сохранение в БД, но и в этом случае есть ограничение - их перерасчет будет произведен, только когда произойдет обновление сущности.

Если обновляются связанные сущности или глобальные объекты, которые использовались для вычисления, то вычисляемый атрибут не пересчитается. В отличии от вычисляемых атрибутов, выражения в журнале позволяют настраивать вычисления, которые вычисляются в момент запроса для каждой записи, что позволяет искать, группировать и сортировать по ним с гарантией актуальности данных.

Выражения настраиваются в дополнительных настройках колонки в поле «Атрибут для загрузки».


../../../_images/0122.png

../../../_images/0222.png

Для настройки выражения нужно, чтобы в содержимом этого поля была или функция или выражение полностью обернутое в скобки.

Примеры

Расчет разницы между датами в днях

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 - это атрибут с датой или датой_временем.