| Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия |
| product:olap:case_system_table [18.07.2019 04:32] – [Шаг 1. Создать и заполнить системный справочник] mayn | product:olap:case_system_table [22.04.2020 11:08] (текущий) – mayn |
|---|
| Частый кейс: нужно сопоставить (перемножить, поделить, сравнить) одни значения с другими. | Частый кейс: нужно сопоставить (перемножить, поделить, сравнить) одни значения с другими. |
| |
| Предположим, мы хотим посчитать цену отгруженного товара. \\ | Предположим, мы хотим посчитать цену отгруженного товара. Или посчитать ставку сотрудников по трудозатратам. \\ |
| Разберемся на яблоках. =) | Разберемся на яблоках. =) |
| |
| {{ :product:olap:apples.png?nolink&150 }} | {{ :product:olap:apples.png?nolink&150 }} |
| |
| Чтобы всё получилось, как надо, нам нужно 2 [[product:tables:about|справочника]]: | Чтобы всё получилось как надо, нам нужно 2 [[product:tables:about|справочника]]: |
| * {{fa>cog}} [[product:tables:admin:system_in_general_table|системный справочник]] | * {{fa>cog}} [[product:tables:admin:system_table|системный справочник]] |
| * и обычный. | * и обычный. |
| |
| Системный справочник содержит какие-то константы или, по крайней мере, значения, актуальные на протяжении какого-то времени. \\ | Системный справочник содержит какие-то константы или, по крайней мере, значения, актуальные на протяжении какого-то времени. \\ |
| Например: | Например: |
| ^Дата записи^Фрукт^Цена за ед.^ | ^Дата записи^Фрукты^Цена за ед.^ |
| |01.01.2010|Яблоки|10| | |01.01.2010|Яблоки|10| |
| |01.01.2018|Яблоки|50| | |01.01.2018|Яблоки|50| |
| <col sm="6" lg="5"> | <col sm="6" lg="5"> |
| И обычный справочник, с информацией об объёмах проданного товара: | И обычный справочник, с информацией об объёмах проданного товара: |
| ^Дата записи^Фрукт^Единиц^ | ^Дата записи^Фрукты^Единиц^ |
| |01.06.2013|Яблоки|2| | |01.06.2013|Яблоки|2| |
| |02.03.2015|Яблоки|3| | |02.03.2015|Яблоки|3| |
| </grid> | </grid> |
| |
| Предположим, что мы хотим узнать, сколько всего мы заработали на всех поставках суммарно. Для этого нужно перемножить цену на яблоки, актуальные на определённые даты, с объёмом проданных яблок. | Предположим, надо узнать, сколько всего мы заработали на всех поставках суммарно. Для этого перемножим цену яблок, актуальную на определённые даты, на объём проданных яблок. |
| |
| **Как это сделать в ADVANTA?** | **Как это сделать в ADVANTA?** |
| ===== Шаг 1. Создать и заполнить системный справочник ===== | ===== Шаг 1. Создать и заполнить системный справочник ===== |
| {{ :product:olap:table_system_illustration.png?nolink&400|}} | {{ :product:olap:table_system_illustration.png?nolink&400|}} |
| | |
| | **Создайте системный справочник "Цена на фрукты".** |
| | |
| - Администрирование -> Структура базы данных -> Справочники -> создать новый справочник. | - Администрирование -> Структура базы данных -> Справочники -> создать новый справочник. |
| - Использовать дату -- ''Да, ручной ввод''. | - Использовать дату -- ''Да, ручной ввод''. |
| ===== Шаг 2. Создать и заполнить обычный справочник ===== | ===== Шаг 2. Создать и заполнить обычный справочник ===== |
| {{:product:tables:table_illustration_3.png?nolink&200 |}} | {{:product:tables:table_illustration_3.png?nolink&200 |}} |
| | |
| | **Создайте справочник "Продажа фруктов".** |
| | |
| - Администрирование -> Структура базы данных -> Справочники -> [[product:tables:admin:new|создать новый справочник]]. \\ В настройках справочника ориентируйтесь на свои бизнес-процессы и удобство пользователей. | - Администрирование -> Структура базы данных -> Справочники -> [[product:tables:admin:new|создать новый справочник]]. \\ В настройках справочника ориентируйтесь на свои бизнес-процессы и удобство пользователей. |
| - [[product:tables:admin:edit|Настроить справочник по всем стандартным канонам]]. | - [[product:tables:admin:edit|Настроить справочник по всем стандартным канонам]]. |
| - пригласить пользователей заполнить значения справочника; | - пригласить пользователей заполнить значения справочника; |
| - импортировать записи справочника; | - импортировать записи справочника; |
| - настроить [[product:forms:admin:new_form|форму и собирать данные]] от пользователей. | - настроить [[product:forms:admin:about|форму и собирать данные]] от пользователей. |
| |
| ===== Шаг 3. Создать OLAP-куб и настроить его ===== | ===== Шаг 3. Создать OLAP-куб и настроить его ===== |
| ==== 3.1 Новый шаблон и измерения куба ==== | ==== 3.1 Новый шаблон куба ==== |
| |
| ==== 3.2 Показатель-запрос из системного справочника ==== | {{:product:olap:olap_illustration_10.png?nolink&120 |}} |
| | |
| | **Создайте новый OLAP-куб "Цена сделок по фруктам".** |
| | |
| | - Администрирование → Структура базы данных → OLAP-кубы -> ''Создать''. |
| | - Заполните поля формы: |
| | * ''Название'' -- //Цена сделок по фруктам//; |
| | * ''Описание'' -- может помочь для поиска нужного OLAP-куба при дальнейших настройках; |
| | * выберите иконку, чтобы было проще ориентироваться; |
| | * ''Число цифр после запятой'' -- укажите количество знаков, до которого будут округляться значения показателей в отчетах; по умолчанию значение "2". |
| | * чек-бокс ''Показывать только одну (последнюю по времени) запись по проекту'' оставить пустым. |
| | * ''Режим обновления'' -- выберите в зависимости от общей нагруженности системы и размеров данных, с которыми куб будет работать. \\ Чтобы данные для пользователей в отчётах открывались быстро, выберите "Один раз в сутки" или "По таймеру". \\ [[product:settings:system:timer|Настройки таймера.]] |
| | |
| | ==== 3.2 Создать измерения ==== |
| | {{:product:olap:olap_illustration_11.png?nolink&120 |}} |
| | - В созданном шаблоне OLAP-куба в блоке "Измерения" -> ''Создать''. |
| | - [[product/olap/new_metering|Создайте измерение]]-дату: \\ <image shape="thumbnail">{{ :product:olap:olap_funny_2.png?nolink |}}</image> |
| | - Создайте измерение-связь между справочниками -- это реквизит-классификатор "Фрукты": \\ <image shape="thumbnail">{{ :product:olap:olap_funny_3.png?nolink |}}</image> |
| | |
| | <callout type="success">Если у вас есть другие реквизиты-классификаторы в справочниках, добавьте их в измерения. Вдруг пригодятся. ;)</callout> |
| | |
| | Так будет выглядеть блок с измерениями в примере с яблоками: |
| | <image shape="thumbnail">{{ :product:olap:olap_funny_1.png?nolink |}}</image> |
| |
| ==== 3.3 Показатель-запрос из обычного справочника ==== | ==== 3.3 Показатель-запрос из обычного справочника ==== |
| | {{:product:olap:olap_illustration_12.png?nolink&120 |}} |
| |
| ==== 3.4 Показатель-формула, чтобы посчитать ==== | **Создайте показатель-запрос "Фруктов продано всего"**. |
| |
| | - В блоке "Показатели" -> ''Создать''. |
| | - Блок "Свойства показателя OLAP-куба": |
| | - введите название измерения -- //Фруктов продано всего//; |
| | - "Тип показателя" -- ''Запрос''; |
| | - "Свойства" -- поставить чек-бокс на ''Агрегация''. |
| | - Блок "Настройки запроса": |
| | - "Источник" -- ''Справочник'' -> выберите из списка справочник "//Продажа фруктов//" (название того справочника в который пользователи вносят информацию); |
| | - "Реквизит" -- выберите тот **числовой** реквизит, в который пользователи вносят количество проданных фруктов. \\ //Если числовой реквизит в справочнике один, то и выбора не будет. Он встанет сюда сам.// |
| | - "Параметры": |
| | - "Измерение OLAP-куба" -- выберите измерение-связующее между справочниками -- //Фрукты//; |
| | - "Дата источника" -- все даты, кроме "Системной" -- это даты, которые относятся к объекту, из которого была сделана запись в справочник; чтобы получить дату именно записи в справочник, выбирайте ''Системный''; |
| | - "Дата OLAP-куба" -- ''Дата (точный)''. |
| | - Сохраните изменения. |
| |
| ---------------------------- | <image shape="thumbnail">{{ :product:olap:olap_funny_4.png?nolink |}}</image> |
| | |
| | ==== 3.4 Показатель-запрос из системного справочника ==== |
| | {{:product:olap:olap_illustration_12.png?nolink&120 |}} |
| | |
| | **Создайте показатель-запрос "Актуальная цена на дату"**. |
| | |
| | - В блоке "Показатели" -> ''Создать''. |
| | - Блок "Свойства показателя OLAP-куба": |
| | - введите название измерения -- //Актуальная цена на дату//; |
| | - "Тип показателя" -- ''Запрос''; |
| | - "Свойства" -- поставить чек-бокс на ''Скрытый''. |
| | - Блок "Настройки запроса": |
| | - "Источник" -- ''Справочник'' -> выберите из списка справочник "//Цена на фрукты//" (название системного справочника); |
| | - "Реквизит" -- выберите тот **числовой** реквизит, куда внесена цена на фрукты. \\ //Если числовой реквизит в справочнике один, то и выбора не будет. Он встанет сюда сам.// |
| | - "Параметры": |
| | - "Измерение OLAP-куба" -- выберите измерение-связующее между справочниками -- //Фрукты//; |
| | - "Дата источника" -- ''Системный''; |
| | - "Дата OLAP-куба" -- ''Дата (относительный)''. |
| | - Сохраните изменения. |
| | |
| | <image shape="thumbnail">{{ :product:olap:olap_funny_5.png?nolink |}}</image> |
| | |
| | ==== 3.5 Показатель-формула, чтобы посчитать ==== |
| | {{:product:olap:olap_illustration_13.png?nolink&120 |}} |
| | |
| | **Создайте показатель-формулу "Цена сделки"**. |
| | |
| | - В блоке "Показатели" -> ''Создать''. |
| | - Блок "Свойства показателя OLAP-куба": |
| | - введите название измерения -- //Цена сделки//; |
| | - "Тип показателя" -- ''Формула''; |
| | - "Свойства" -- поставить чек-бокс на ''Агрегация''. |
| | - Блок "Формула" -> последовательно ''Добавить'' показатель //Актуальная цена на дату//, знак %%*%%, показатель //Фруктов продано всего//. |
| | - Сохраните изменения. |
| | |
| | <image shape="thumbnail">{{ :product:olap:olap_funny_6.png?nolink |}}</image> |
| | |
| | ------------------------ |
| |
| {{ :product:olap:olap_illustration_6_1.png?nolink&800 |}} | {{ :product:olap:olap_illustration_6_1.png?nolink&800 |}} |
| | |
| | ===== Шаг 4. Проверить, что получилось ===== |
| | |
| | {{:product:olap:olap_illustration_14.png?nolink&130 |}} |
| | |
| | **Создайте [[product:reports:olap|OLAP-отчёт]], чтобы проверить, что получилось.** |
| | |
| | - Рабочий стол ADVANTA (Главная страница) -> в модуле слева "Мои отчёты" -> "+ Добавить отчёт". |
| | - Выберите в блоке с отчётами OLAP-куб с //"Цена сделок по фруктам"//. |
| | - Выберите в [[product:reports:filters|фильтре]] те объекты, к которым привязан справочник, куда пользователи вносят данные. |
| | - Посмотрите, что получилось. |
| | |
| | Вероятно, у вас возникнет вопрос, как вытащить, поменять поля, которые формируются показателями OLAP-куба. \\ |
| | Они находятся не в блоке "Вывести список скрытых колонок", а прячутся в "Заголовках полей данных": |
| | |
| | <image shape="thumbnail">{{ :product:olap:olap_funny_7.png?nolink |}}</image> |
| | |
| | <image shape="thumbnail">{{ :product:olap:olap_funny.gif?nolink |}}</image> |
| | |
| | --------------------- |
| | |
| | См. также: |
| | * [[product:olap:case_index|как посчитать количество записей в справочнике]]; |
| | * [[product/olap/case_average_bill|как узнать средний чек по сделкам.]] |