Кейс: Использование константы из справочника в OLAP-кубе
Частый кейс: нужно сопоставить (перемножить, поделить, сравнить) одни значения с другими.
Предположим, мы хотим посчитать цену отгруженного товара. Или посчитать ставку сотрудников по трудозатратам.
Разберемся на яблоках.
Чтобы всё получилось как надо, нам нужно 2 справочника:
Системный справочник содержит какие-то константы или, по крайней мере, значения, актуальные на протяжении какого-то времени.
Например:
Дата записи | Фрукты | Цена за ед. |
01.01.2010 | Яблоки | 10 |
01.01.2018 | Яблоки | 50 |
И обычный справочник, с информацией об объёмах проданного товара:
Дата записи | Фрукты | Единиц |
01.06.2013 | Яблоки | 2 |
02.03.2015 | Яблоки | 3 |
30.12.2017 | Яблоки | 1 |
10.02.2018 | Яблоки | 4 |
29.10.2018 | Яблоки | 2 |
16.07.2019 | Яблоки | 1 |
Предположим, надо узнать, сколько всего мы заработали на всех поставках суммарно. Для этого перемножим цену яблок, актуальную на определённые даты, на объём проданных яблок.
Как это сделать в ADVANTA?
Шаг 1. Создать и заполнить системный справочник
Создайте системный справочник «Цена на фрукты».
Администрирование → Структура базы данных → Справочники → создать новый справочник.
Использовать дату – Да, ручной ввод
.
Структура записей справочника – Горизонтальный список
.
Остальные значения – оставить по умолчанию.
-
-
Заполнить значения этого справочника:
Администрирование → Структура базы данных → Справочники → напротив нужного справочника
![edit edit](/lib/exe/fetch.php/product/objects/gant/edit_gant.png)
Добавить/изменить необходимые записи.
Важно!
Даты в этом справочнике должны быть более ранними, чем те, которые будут в обычном, куда пользователи будут
делать записи. В противном случае, даты друг друга «не найдут».
Шаг 2. Создать и заполнить обычный справочник
Создайте справочник «Продажа фруктов».
Администрирование → Структура базы данных → Справочники →
создать новый справочник.
В настройках справочника ориентируйтесь на свои бизнес-процессы и удобство пользователей.
-
-
Заполнить значения этого справочника:
пригласить пользователей заполнить значения справочника;
импортировать записи справочника;
-
Шаг 3. Создать OLAP-куб и настроить его
3.1 Новый шаблон куба
Создайте новый OLAP-куб «Цена сделок по фруктам».
Администрирование → Структура базы данных → OLAP-кубы → Создать
.
Заполните поля формы:
Название
– Цена сделок по фруктам;
Описание
– может помочь для поиска нужного OLAP-куба при дальнейших настройках;
выберите иконку, чтобы было проще ориентироваться;
Число цифр после запятой
– укажите количество знаков, до которого будут округляться значения показателей в отчетах; по умолчанию значение «2».
чек-бокс Показывать только одну (последнюю по времени) запись по проекту
оставить пустым.
Режим обновления
– выберите в зависимости от общей нагруженности системы и размеров данных, с которыми куб будет работать.
Чтобы данные для пользователей в отчётах открывались быстро, выберите «Один раз в сутки» или «По таймеру».
Настройки таймера.
3.2 Создать измерения
В созданном шаблоне OLAP-куба в блоке «Измерения» → Создать
.
-
Создайте измерение-связь между справочниками – это реквизит-классификатор «Фрукты»:
![](/lib/exe/fetch.php/product/olap/olap_funny_3.png)
Если у вас есть другие реквизиты-классификаторы в справочниках, добавьте их в измерения. Вдруг пригодятся. ;)
Так будет выглядеть блок с измерениями в примере с яблоками:
3.3 Показатель-запрос из обычного справочника
Создайте показатель-запрос «Фруктов продано всего».
В блоке «Показатели» → Создать
.
Блок «Свойства показателя OLAP-куба»:
введите название измерения – Фруктов продано всего;
«Тип показателя» – Запрос
;
«Свойства» – поставить чек-бокс на Агрегация
.
Блок «Настройки запроса»:
«Источник» – Справочник
→ выберите из списка справочник «Продажа фруктов» (название того справочника в который пользователи вносят информацию);
«Реквизит» – выберите тот числовой реквизит, в который пользователи вносят количество проданных фруктов.
Если числовой реквизит в справочнике один, то и выбора не будет. Он встанет сюда сам.
«Параметры»:
«Измерение OLAP-куба» – выберите измерение-связующее между справочниками – Фрукты;
«Дата источника» – все даты, кроме «Системной» – это даты, которые относятся к объекту, из которого была сделана запись в справочник; чтобы получить дату именно записи в справочник, выбирайте Системный
;
«Дата OLAP-куба» – Дата (точный)
.
Сохраните изменения.
3.4 Показатель-запрос из системного справочника
Создайте показатель-запрос «Актуальная цена на дату».
В блоке «Показатели» → Создать
.
Блок «Свойства показателя OLAP-куба»:
введите название измерения – Актуальная цена на дату;
«Тип показателя» – Запрос
;
«Свойства» – поставить чек-бокс на Скрытый
.
Блок «Настройки запроса»:
«Источник» – Справочник
→ выберите из списка справочник «Цена на фрукты» (название системного справочника);
«Реквизит» – выберите тот числовой реквизит, куда внесена цена на фрукты.
Если числовой реквизит в справочнике один, то и выбора не будет. Он встанет сюда сам.
«Параметры»:
«Измерение OLAP-куба» – выберите измерение-связующее между справочниками – Фрукты;
«Дата источника» – Системный
;
«Дата OLAP-куба» – Дата (относительный)
.
Сохраните изменения.
3.5 Показатель-формула, чтобы посчитать
Создайте показатель-формулу «Цена сделки».
В блоке «Показатели» → Создать
.
Блок «Свойства показателя OLAP-куба»:
введите название измерения – Цена сделки;
«Тип показателя» – Формула
;
«Свойства» – поставить чек-бокс на Агрегация
.
Блок «Формула» → последовательно Добавить
показатель Актуальная цена на дату, знак *, показатель Фруктов продано всего.
Сохраните изменения.
![](/lib/exe/fetch.php/product/olap/olap_funny_6.png)
Шаг 4. Проверить, что получилось
Создайте OLAP-отчёт, чтобы проверить, что получилось.
Рабочий стол ADVANTA (Главная страница) → в модуле слева «Мои отчёты» → «+ Добавить отчёт».
Выберите в блоке с отчётами OLAP-куб с «Цена сделок по фруктам».
Выберите в
фильтре те объекты, к которым привязан справочник, куда пользователи вносят данные.
Посмотрите, что получилось.
Вероятно, у вас возникнет вопрос, как вытащить, поменять поля, которые формируются показателями OLAP-куба.
Они находятся не в блоке «Вывести список скрытых колонок», а прячутся в «Заголовках полей данных»:
![](/lib/exe/fetch.php/product/olap/olap_funny_7.png)
![](/lib/exe/fetch.php/product/olap/olap_funny.gif)
См. также: