Отображение диапазона дат в фильтре «Календарь»

Описание проблемы

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

Например:

  • в качестве технической заглушки используется дата "0001-01-01";
  • остальные даты находятся в актуальном диапазоне, например не старше 2024 года.

При таком большом разрыве между минимальной и максимальной датами фильтр по датам в подразделе «Дата» может отображать значения, которых фактически нет в витрине, и при этом не предлагать часть актуальных лет.

Причина

При открытии календаря система запрашивает минимальную и максимальную даты, содержащиеся в кубе.

Если сервер возвращает минимальную дату в значении:

0001-01-01

веб-интерфейс при обработке приводит её к минимально допустимой дате, поддерживаемой компонентом «Календарь».

Из-за этого возникает некорректное отображение диапазона дат в фильтре.

Рекомендуемое решение

Корректным решением является исключение технических или некорректных минимальных дат до того, как они попадут в компонент «Календарь».

Возможны два варианта реализации.

Вариант 1. Фильтрация на уровне столбца

На уровне SQL для соответствующего столбца добавить условие, исключающее даты ранее заданной границы.

Например:

date_column >= '2023-01-01'

Вариант 2. Фильтрация в SQL-запросе куба

Добавить аналогичное условие непосредственно в SQL-запрос куба, чтобы записи с датами ранее заданной границы не попадали в выборку.

Например:

WHERE date_column >= '2023-01-01'

Итог

Если в данных используются технические значения дат, например "0001-01-01", рекомендуется исключать их на уровне SQL до передачи данных в Luxms BI.

Это позволяет избежать некорректного определения минимальной даты и, как следствие, неправильного отображения диапазона в фильтре «Календарь».