====== Кейс: посчитать количество записей в справочнике ====== {{:product:olap:olap_case_0.png?nolink&350 |}} Это -- одна из основополагающих операций для многих аналитических расчётов. Но не очень очевидная с т.зр. реализации. Чтобы было что посчитать, нужно **добавить к справочнику/объекту пустой числовой реквизит**. \\ А чтобы система поняла, что это счётчик, в **показателе OLAP-куба сделать каждую его запись константой со значением "1"**. Предположим, что мы хотим посчитать, сколько раз отгружали фрукты по договорам поставки. Справочник с исходными данными называется "Фруктов отгружено". ===== Шаг 1. Добавить индекс ===== **Добавьте колонку "Индекс" в справочник "Фруктов отгружено".** - Если [[product/requisites/number|числовой реквизит]] "Индекс" еще не создан, создайте его: Администрирование -> Структура базы данных -> Реквизиты -> ''Создайте новый реквизит'': * "Название" -- Индекс; * "Тип реквизита" -- Число; * "Число цифр до запятой" -- 1; * "Число цифр после запятой" -- 0; * "Максимальное значение" -- 1; * "Формат" -- Число. \\ {{ :product:olap:olap_case_1.png?nolink |}} - Добавьте его [[product:tables:admin:requisites|к нужному справочнику]]. - В настройке реквизитов в справочке -> изменить в поле с реквизитом "Индекс" -> снимите с него галки "Показывать" и "Обязательный". Сохраните изменения. \\ {{ :product:olap:olap_case_2.png?nolink |}} ===== Шаг 2. Создать и настроить OLAP-куб ===== {{ :product:olap:olap_case_3_ru.png?nolink&550 |}} ==== 2.1 Новый шаблон куба ==== {{:product:olap:olap_illustration_10.png?nolink&120 |}} **Создайте новый OLAP-куб "Количество транзакций".** - Администрирование → Структура базы данных → OLAP-кубы -> ''Создать''. - Заполните поля формы: * ''Название'' -- //Количество транзакций//; * ''Описание'' -- может помочь для поиска нужного OLAP-куба при дальнейших настройках; * выберите иконку, чтобы было проще ориентироваться; * ''Число цифр после запятой'' -- 0; * чек-бокс ''Показывать только одну (последнюю по времени) запись по проекту'' оставить пустым. * ''Режим обновления'' -- выберите в зависимости от общей нагруженности системы и размеров данных, с которыми куб будет работать. \\ Чтобы данные для пользователей в отчётах открывались быстро, выберите "Один раз в сутки" или "По таймеру". \\ [[product:settings:system:timer|Настройки таймера.]] ==== 2.2 Создать измерения ==== {{:product:olap:olap_illustration_11.png?nolink&120 |}} - В созданном шаблоне OLAP-куба в блоке "Измерения" -> ''Создать''. - [[product/olap/new_metering|Создайте измерение]]-дату: \\ {{ :product:olap:olap_funny_2.png?nolink |}} - Создайте измерение -- реквизит-классификатор. В нашем примере это "Фрукты": \\ {{ :product:olap:olap_funny_3.png?nolink |}} Если у вас есть другие реквизиты-классификаторы в справочниках, добавьте их в измерения. Вдруг пригодятся. ;) Так будет выглядеть блок с измерениями в примере с яблоками: {{ :product:olap:olap_funny_1.png?nolink |}} ==== 2.3 Показатель-запрос из справочника ==== {{:product:olap:olap_illustration_12.png?nolink&120 |}} **Создайте показатель-запрос "Индикатор"**. - В блоке "Показатели" -> ''Создать''. - Блок "Свойства показателя OLAP-куба": - введите название измерения -- //Индикатор//; - "Тип показателя" -- ''Запрос''; - "Свойства" -- поставить чек-бокс на ''Агрегация'' и на ''Скрытый''. - Блок "Настройки запроса": - "Источник" -- ''Справочник'' -> выберите из списка справочник "//Фруктов отгружено//" (название того справочника в который пользователи вносят информацию); - "Реквизит" -- выберите тот **числовой** реквизит, в который пользователи вносят количество проданных фруктов. \\ //Если числовой реквизит в справочнике один, то и выбора не будет. Он встанет сюда сам.// - "Параметры": - "Измерение OLAP-куба" -- выберите ранее созданное измерение -- //Фрукты//; - "Дата источника" -- все даты, кроме "Системной" -- это даты, которые относятся к объекту, из которого была сделана запись в справочник; чтобы получить дату именно записи в справочник, выбирайте ''Системный''; - "Дата OLAP-куба" -- ''Дата (точный)''. - Сохраните изменения. {{ :product:olap:olap_case_4.png?nolink |}} ==== 2.4 Показатель-формула, чтобы посчитать ==== {{:product:olap:olap_illustration_13.png?nolink&120 |}} **Создайте показатель-формулу "Количество сделок"**. - В блоке "Показатели" -> ''Создать''. - Блок "Свойства показателя OLAP-куба": - введите название измерения -- //Количество сделок//; - "Тип показателя" -- ''Формула''; - "Свойства" -- поставить чек-бокс на ''Агрегация''. - Блок "Формула" -> выбрать "Константа" -> указать "1". - Сохраните изменения. {{ :product:olap:olap_case_5.png?nolink |}} ---------------- Куб готов. Вы можете использовать его для дальнейших вычислений. Например, чтобы узнать [[product:olap:case_average_bill|сумму среднего чека]]. \\ Проверить, что система посчитала, можно [[product:reports:olap|через создание OLAP-отчёта.]]