Кейс: Использование константы из справочника в 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. Администрирование → Структура базы данных → Справочники → создать новый справочник.
    1. Использовать дату – Да, ручной ввод.
    2. Структура записей справочника – Горизонтальный список.
    3. Остальные значения – оставить по умолчанию.
  2. Привязать этот справочник к объекту «Система в целом».
  3. Добавить в справочник реквизит-классификатор, который будет однозначно связывать его с другими справочниками.
    В «яблочном» примере – это реквизит-классификатор «Фрукты».
  4. Заполнить значения этого справочника:
    1. Администрирование → Структура базы данных → Справочники → напротив нужного справочника edit
    2. Добавить/изменить необходимые записи.

Важно!

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

Создайте справочник «Продажа фруктов».

  1. Администрирование → Структура базы данных → Справочники → создать новый справочник.
    В настройках справочника ориентируйтесь на свои бизнес-процессы и удобство пользователей.
  2. Добавить в справочник реквизит-классификатор, который будет однозначно связывать его с системным справочником.
    В «яблочном» примере – это реквизит-классификатор «Фрукты».
  3. Заполнить значения этого справочника:
    1. пригласить пользователей заполнить значения справочника;
    2. импортировать записи справочника;
    3. настроить форму и собирать данные от пользователей.

Создайте новый OLAP-куб «Цена сделок по фруктам».

  1. Администрирование → Структура базы данных → OLAP-кубы → Создать.
  2. Заполните поля формы:
    • НазваниеЦена сделок по фруктам;
    • Описание – может помочь для поиска нужного OLAP-куба при дальнейших настройках;
    • выберите иконку, чтобы было проще ориентироваться;
    • Число цифр после запятой – укажите количество знаков, до которого будут округляться значения показателей в отчетах; по умолчанию значение «2».
    • чек-бокс Показывать только одну (последнюю по времени) запись по проекту оставить пустым.
    • Режим обновления – выберите в зависимости от общей нагруженности системы и размеров данных, с которыми куб будет работать.
      Чтобы данные для пользователей в отчётах открывались быстро, выберите «Один раз в сутки» или «По таймеру».
      Настройки таймера.

  1. В созданном шаблоне OLAP-куба в блоке «Измерения» → Создать.
  2. Создайте измерение-связь между справочниками – это реквизит-классификатор «Фрукты»:
Если у вас есть другие реквизиты-классификаторы в справочниках, добавьте их в измерения. Вдруг пригодятся. ;)

Так будет выглядеть блок с измерениями в примере с яблоками:

Создайте показатель-запрос «Фруктов продано всего».

  1. В блоке «Показатели» → Создать.
  2. Блок «Свойства показателя OLAP-куба»:
    1. введите название измерения – Фруктов продано всего;
    2. «Тип показателя» – Запрос;
    3. «Свойства» – поставить чек-бокс на Агрегация.
  3. Блок «Настройки запроса»:
    1. «Источник» – Справочник → выберите из списка справочник «Продажа фруктов» (название того справочника в который пользователи вносят информацию);
    2. «Реквизит» – выберите тот числовой реквизит, в который пользователи вносят количество проданных фруктов.
      Если числовой реквизит в справочнике один, то и выбора не будет. Он встанет сюда сам.
    3. «Параметры»:
      1. «Измерение OLAP-куба» – выберите измерение-связующее между справочниками – Фрукты;
      2. «Дата источника» – все даты, кроме «Системной» – это даты, которые относятся к объекту, из которого была сделана запись в справочник; чтобы получить дату именно записи в справочник, выбирайте Системный;
      3. «Дата OLAP-куба» – Дата (точный).
  4. Сохраните изменения.

Создайте показатель-запрос «Актуальная цена на дату».

  1. В блоке «Показатели» → Создать.
  2. Блок «Свойства показателя OLAP-куба»:
    1. введите название измерения – Актуальная цена на дату;
    2. «Тип показателя» – Запрос;
    3. «Свойства» – поставить чек-бокс на Скрытый.
  3. Блок «Настройки запроса»:
    1. «Источник» – Справочник → выберите из списка справочник «Цена на фрукты» (название системного справочника);
    2. «Реквизит» – выберите тот числовой реквизит, куда внесена цена на фрукты.
      Если числовой реквизит в справочнике один, то и выбора не будет. Он встанет сюда сам.
    3. «Параметры»:
      1. «Измерение OLAP-куба» – выберите измерение-связующее между справочниками – Фрукты;
      2. «Дата источника» – Системный;
      3. «Дата OLAP-куба» – Дата (относительный).
  4. Сохраните изменения.

Создайте показатель-формулу «Цена сделки».

  1. В блоке «Показатели» → Создать.
  2. Блок «Свойства показателя OLAP-куба»:
    1. введите название измерения – Цена сделки;
    2. «Тип показателя» – Формула;
    3. «Свойства» – поставить чек-бокс на Агрегация.
  3. Блок «Формула» → последовательно Добавить показатель Актуальная цена на дату, знак *, показатель Фруктов продано всего.
  4. Сохраните изменения.

Создайте OLAP-отчёт, чтобы проверить, что получилось.

  1. Рабочий стол ADVANTA (Главная страница) → в модуле слева «Мои отчёты» → «+ Добавить отчёт».
  2. Выберите в блоке с отчётами OLAP-куб с «Цена сделок по фруктам».
  3. Выберите в фильтре те объекты, к которым привязан справочник, куда пользователи вносят данные.
  4. Посмотрите, что получилось.

Вероятно, у вас возникнет вопрос, как вытащить, поменять поля, которые формируются показателями OLAP-куба.
Они находятся не в блоке «Вывести список скрытых колонок», а прячутся в «Заголовках полей данных»:


См. также: