Что такое агрегирование данных Ячеек?
Выполняя тривиальные функции веб-Импорта, возможно, пользователь и не задумывался, что по сути пропускает через автоматизированные механизмы SimERP информацию, которая могла бы в последствии помочь ему в принятии решений. Например, поток данных с ценовым уклоном целесообразно мониторить на предмет ценовых скачков или выявления неких тенденций. К слову, не все факты изначально открыты взору оператора, многие доступны лишь по факту накопления достаточной статистики. Так, можно привязать квадратный метр киевской однокомнатной квартиры в Святошинском районе к курсу доллара и периодически наблюдать за дельтой показателя. Другой пример – ценовая маржа продуктов сельхоз-товаров с агрегированием по сезонному показателю, а также группированием по региону. В статье «Обработка денежной единицы в сценариях Авизо» показано, как дополнить Фильтр недостающей функцией дифференцирования валюты, ведь невозможно выполнить адекватный анализ цен на жилье, имея в арсенале данные, не приведенные к единому индексу (здесь мы говорим о курсе доллара США как устоявшемся эталоне).
Что предлагает SimERP?
Во-первых, различного рода агрегирующие функции не мешают по-прежнему выполнять обычный Импорт, абсолютно не отвлекая пользователя от тех задач, которые уже успешно выполняются, т.е. технологическая цепь компании не ломается и не блокируется новыми непроверенными практикой решениями. Во-вторых, система, лозунгом которой, видимо, таки станет «Принцип одной кнопки», предлагает максимально упрощенный вариант настройки аналитических функций: выполнить ее сможет даже ребенок, окончивший 4 класса средней школы ;-)
Рассмотрим главное окно настройки аналитики Ячейки памяти, подробно описывая каждое из полей.
1. Основные поля настроек Аналитики Ячеек
Импортер Скорее, это не поле ввода, а надпись (окно настроек может быть вызвано только из свойств Импортера, значение «наследуется»). Поскольку одни и те же Ячейки памяти могут использоваться различными Импортерами, мы сочли необходимым привязать аналитику к конкретной роли этой Ячейки. Таким образом, Ячейка «количество» при импорте справочника медпрепаратов (количество таблеток в блистере), продукции сельского хозяйства (минимальная оптовая партия злаковых), аренде помещений нежилого фонда (квадратные метры), а также земельных участков (сотки или гектары) выполняют различные функции. Поэтому говоря об аналитике Ячейки, сразу подразумеваем: в контексте какого-то Импортера. Система в диалоговом окне настроек показывает, к чему будут привязаны агрегирующие функции Ячейки.
Фильтр Так же, как и с надписью «Импортер», пользователю не дано возможности изменить элемент в этом списке: только Фильтром определяется конкретная роль Ячейки, а Фильтр, в свою очередь, привязан к Импортеру, поскольку является его т.с. уникальным «двигателем». Смена Фильтра в списке не имеет никакого смысла.
Ячейка Список содержит только используемые Фильтром Ячейки. В данном случае выбрана та Ячейка, аналитические свойства которой пользователь выбрал для редактирования в диалоге редактирования Импортера. Примечательно, что Импортер «узнал» об использованных Ячейках через привязку к нему Фильтров. Таким образом, для того, чтобы настроить Ячейку, необходимо ее как минимум использовать с командой SetValue или SetValueEX в одном из привязанных Фильтров.
Название критерия Это – надпись, которая поможет пользователю в будущем разобраться, что за функции выполняет эта настройка. Чем точнее описана настройка в этом поле, тем понятнее, прозрачнее будет впоследствии их идентифицирование другими пользователями.
Тип аналитики Тип аналитики – не что иное как способ агрегирования значения. Одним из вариантов является хранение хронологических значений «как есть» (яркий пример тому – курс валют), где изменение или выведение средней, максимальной величины бессмысленно: незачем выводить средний курс валют по всем позициям, предлагаемым национальным банком! SimERP также предлагает следующие варианты:
- Среднее
- Максимум
- Минимум
- Дельта
Четыре приведенных здесь типа отличаются не только тем, что выводят производные значения, а также и тем, что участвуют в накоплении так называемой глобальной статистики. К примеру, здесь может формироваться средняя цена квадратного метра определенного типа жилья в указанном районе. При этом полезно знать среднюю цену, полученную в текущем сеансе, а также средний глобальный показатель. То же можно сказать и о минимальном и максимальном показателе. Дельта – изменение глобального показателя. Нам кажется, найти применение годичному графику скачка цены на метр – не сложно.
Обновлять глобальный критерий Флажок, запрещающий или позволяющий модифицировать глобальную статистику. Дело в том, что, вероятно, пользователю уже известны сайты, содержащие данные, вряд ли достойные участия в принятии решений: это могут быть и непроверенные данные, да и попросту сайты, не заслужившие доверия и не сформировавшие соответствующей репутации.
Подобные ресурсы имеет смысл обрабатывать как есть, а формирование статданных оставить лишь избранным.
Обработка отсутствующего значения Суть это списка вариантов поведения сценария, если значение не внесено – подстановка явного значения. Пример: в тексте вакансий зачастую указано следующее:
Зарплата: 1$
Это говорит лишь о следующем: работодатель не готов публиковать запланированный уровень оплаты труда, поскольку ориентируется на результаты собеседования с соискателем, однако поле «ЗП» на сайте – обязательное для заполнения. Так, представителю фирмы, заполнявшему анкету, ничего не оставалось, как указать единичку в качестве хоть какого-то значения... Впрочем, такая форма записи договорной ЗП уже стала привычной и всем понятной, однако мы бы рекомендовали в сценариях Фильтров выполнять удаление таких значений (замену на «пусто»), поскольку фактически в этом случае заработная плата не указана. В результате мы получим запись с отсутствующим значением. При экспорте на корпоративный сайт пользователь может указать следующее:
«ЗП не указана» «Цена договорная»
А для ценовых показателей – выбрать для пустой Ячейки валюту по умолчанию, например, «грн.». Система предлагает как подстановку значений в случае их отсутствия (поле «Значение подстановки»), так и отмену обработки такой Ячейки в целом. Такая запись не участвует в агрегировании и накоплении какой-либо статистики.
2. Дополнительные настройки Аналитики
Дополнительные настройки обеспечивают моментальные расчеты исходя из значений других Ячеек: невозможно провести ценовой анализ, не выполнив отбора по таким параметрам, как тип товара, а также его количество. Например, ничего не несет в себе средняя цена пропозиции жилья (продажа), пока та не будет разделена на метраж. Более того, как уже было сказано выше, в различных районах города цена метра серьезно варьируется. Также велика вероятность смешивания значений в разных единицах (гривня, доллар США, евро). Предлагаем к рассмотрению поля раздела расчетной Ячейки диалога настройки Аналитики Ячейки.
Действие Приведенные арифметические операции не нуждаются в описании (за редким исключением): оператор указывает системе, каков тип отношения основного значения к расчетной Ячейке. Такие операции как «умножить», разделить, прибавить или вычесть – знакомы всем с детства, а некоторые все же опишем: - Целочисленное деление – деление без остатка. Остаток, если тот присутствует в результате – отбрасывается. - mod – остаток от деления. Например, 21 mod 10 будет равным 1. - Конкатенация строк (символ "&”) – безопасное объединение строковых величин. Мы сознательно ввели подобный оператор, который, в отличие от популярного в сценарных языках знака «плюс» лишен опасности случайного суммирования, т.к. многие языки программирования обладают свойствами неявного преобразования типов. В подобных случаях суммированию могли бы подвергнуться теги при, скажем, импортировании музыкальных новостей:
«80-е» + «90-е»
Или, скажем, конкатенация тегов сайта 101 – вопрос тонкий, который приведет к непредсказуемым последствиям:
«101» + «C++»
Расчетная Ячейка Собственно, второй «фигурант» расчетов: основное значение подвергается расчетам согласно оператору, описанному выше, относительно указанной здесь Ячейки.
Пример применения:
Основная Ячейка: Цена Действие: деление Расчетная Ячейка: количество
Флажок «Условия расчета» Признак того, что значение, пригодно для применения в аналитических расчетах. Далее этот признак описан при помощи полей. Список «Ячейка», тип сравнения «равно», «не равно», «содержит», «не содержит» и пр., а также значение Регулятор «применимости» значения в конкретном случае. Например, значение непригодно, если заработная плата равна 1 (см. выше). Также, исходя из некоторых соображений, нам кажется, что смысл анализа предложений о работе, где в ячейке 59 («Основной текст») присутствует текст «на дому;свободный график» в любой форме - чрезвычайно сомнителен. По крайней мере, не годится для внесения в глобальную статистику средних зарплат за какой-то период...
Вообще, в поле значения можно вводить несколько значений, которые будут обработаны последовательно. Как и в большинстве случаев, SimERP предлагает указывать из через точку с запятой. Длина каждого элемента – не более 255 символов.
В итоге...
После того, как агрегирование используемых Фильтрами Импортера настроено должным образом, во вкладке "Аналитика" появляется краткий отчет о привязанном сценарии обработки значений, а именно задействованная Ячейка, описание аналитики, формируемое автоматически, а также тип действий над значением этой Ячейки.
Примечание: коммерческое использование аналитики возможно лишь при наличии установленной лицензии SimERP InTrade.
|