Описание проблемы
В кубе могут присутствовать записи с датами, которые значительно отличаются от основного диапазона данных.
Например:
- в качестве технической заглушки используется дата
"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.
Это позволяет избежать некорректного определения минимальной даты и, как следствие, неправильного отображения диапазона в фильтре «Календарь».