Советы по настройке QuBeQu

Основной задачей QuBeQu является анализ существующих массивов данных, накопленных в других системах или файлах. Однако помимо этого, система может быть использована для сбора какой-либо информации с пользователей (ввода через web-интерфейс) и создания новых блоков данных.

С чего начать

Опишем подробнее процесс начальной загрузки данных в QuBeQu, а также основные принципы которым желательно следовать при работе.

Итак, допустим у вас есть некоторый набор систем или файлов, данные из которых вам необходимо загрузить в QuBeQu. Не пытайтесь грузить сразу все данные из всех коннекторов. Сначала настройте коннектор к одной системе и внимательно проанализируйте структуру данных.

Формально можно разделить все данные на две части: аналитические признаки (справочники, периоды и прочие свойства объектов) и числовые данные (величины, объемы, суммы и прочие значения, которые мы хотим агрегировать, вычислять и анализировать). Для работы и с аналитическими признаками, и числовыми значениями в Qubequ используются показатели. Показатель - это базовая сущность в Qubequ, соответствующая какому-либо типу данных (показатели это, например, столбцы в БД или excel, вычисляемые величины, характеристики, разрезы).

Например, если у нас есть база клиентов, а мы хотим анализировать количество клиентов по различным признакам — нам понадобится числовая величина «количество клиентов», и ее признаки (например категория клиента, регион, дата контакта и т.п.). Каждому из этих признаков и числовых величин в Qubequ будет соответствовать свой показатель.

Первым делом вам необходимо загрузить базовые справочники, с которыми вы хотите работать. Это может быть список пользователей, или справочник номенклатуры, или перечень контрагентов.

Загрузка справочников

Для начала опишем как QuBeQu работает со справочниками:

Примечание

У всех элементов справочника должно быть определено «Название».

Справочник в QuBeQu — это некоторое множество объектов. Никаких формальных ограничений больше нет, однако на практике можно считать, что у всех элементов справочника должно быть определено «Название» (это выделенный системный показатель для работы со справочниками). Если «Название» для элемента справочника не задано, то пользователь будет видеть внутренний id соответствующего объекта в интерфейсе, если встречается ссылка на этот объект.

Также, для работы со справочником необходим показатель, принимающий значения из этого справочника. Показатель и справочник — это две разные сущности, т.к. например, если у вас есть справочник «Контрагенты», вам может понадобится показатель «Поставщик» и показатель «Заказчик» — оба берущие значения из этого справочника. Фактически, в QuBeQu при создании справочника почти всегда автоматически создается одноименный показатель для работы с ним, однако следует помнить, что это разные сущности.

Итак, создать нужные вам справочники вы можете различными способами.

  1. Создание справочника из отдельной таблицы БД

Если вы работаете с базой данных, то скорее всего, для каждого из таких справочников будет существовать своя таблица.

Примечание

При сохранении коннектора создаются все используемые в нем показатели и справочники (если их еще нет в системе).

  • Выберите ее для загрузки и отключите все поля (не загружайте пока ничего и не сохраняйте коннектор — чтобы не создавать лишних сущностей в QuBeQu).

  • Как правило, в таблице БД есть поле id или похожее, в котором хранятся уникальные идентификаторы для каждой записи данной таблицы. Отметьте его для загрузки в новый показатель с типом «Строка» или «Целое» (в зависимости от значений). В названии этого показателя укажите, что это id для вашей таблицы.

    Например, назовите его «id(контрагенты)», или id(1С_контрагенты) если вы знаете, что в другой системе тоже есть похожий справочник. Пометьте также, что это обязательное поле, которое является ключом (поставьте галочки «ключ» и «обязательное»).

  • Также в этой таблице должно присутствовать пользовательское название объекта. Значение этого поля мы бы хотели видеть в качестве названия элемента справочника в QuBeQu. Нам необходимо пометить его тоже для загрузки, в существующий по умолчанию в любой QuBeQu системный показатель «Название»

  • Теперь можно загрузить данную таблицу. После нажатия «загрузить данные» или «только выбранную таблицу» произойдет несколько вещей:

    • Создастся показатель для хранения идентификатора («id(контрагенты)» например)
    • Создастся справочник, который будет называться так же как таблица в БД
    • Этот справочник наполнится элементами, обладающими двумя свойствами: Название и идентификатор.
    • А также создастся показатель, берущий значения из этого справочника, называющийся так же, как таблица в БД.

Примечание

Загружайте только те поля, которые используются для анализа.

Далее, поскольку мы задали ключ, мы можем подключить другие нужные поля в коннекторе и обновить таблицу (нажать «загрузить» еще раз) — к справочнику будут добавлены соответствующие свойства. Не надо грузить те поля, которые не используются для анализа.

  1. Создание справочника вручную.

Вы можете создать новый справочник непосредственно в QuBeQu. Однако это будет простейший справочник, у элементов которого может быть определено только название и не будет дополнительных свойств.

  1. Создание справочника «на лету» по встречающимся элементам

Допустим, вы грузите файл с закупками, в котором присутствует столбец «Поставщик». Вам нужно анализировать объем закупок у конкретного поставщика. Значит вам нужно будет создать справочник «Поставщик» на лету при загрузке. Для этого необходимо пометить столбец «Поставщик» для загрузки в новый показатель, с типом «справочник», указать «новый» в выборе справочника и «разрешить добавление новых элементов». Тогда при загрузке создастся новый показатель «Поставщик», новый справочник «Поставщик» и этот справочник заполнится элементами, встречающимися в этом столбце.

Обратите внимание, что при таком создании справочника, сами закупки тоже будут загружены согласно настройкам. Т.е. если у вас в файле встречалось два поставщика и было 1000 закупок (строк в целом) — в QuBeQu создастся справочник из двух элементов и еще 1000 объектов, ссылающихся на него. Поэтому грузить только один столбец «Поставщик» — нельзя. Необходимо так же включить столбец-ключ для закупок, чтобы потом иметь возможность подгрузить остальные свойства закупок, помимо «Поставщика»

Есть еще несколько вариантов создания справочников, однако описанные выше покрывают большинство встречающихся случаев.

Просмотр и редактирование существующих справочников

Для того, чтобы посмотреть элементы справочника, необходимо построить реестр по данному справочнику.

Допустим, нам надо посмотреть справочник “Номенклатура”, элементы которого имеют “Название” и “id(номенклатура)”. Если мы построим реестр из одного столбца “Название” — мы получим реестр, содержащий все объекты системы, у которых определено “Название”. Для того, чтобы посмотреть только нужный справочник — необходимо в настройках реестра указать “из справочника” — “Номенклатура”. После этого в реестр будут попадать только объекты из этого справочника.

В данном случае мы увидим только названия элементов справочника. Для того, чтобы увидеть еще какие-либо свойства — можно добавить их в заголовки столбцов реестра. Например, если добавить в реестр “id(номенклатура)” — мы увидим еще и значения этого показателя. Если свойство определено не у всех элементов, выбирайте может быть пустым в параметрах заголовка.

Итак, в таком реестре мы видим все элементы справочника. Если мы разрешим редактирование этого реестра, мы сможем производить различные операции со справочником:

  1. Редактирование элементов справочника

Редактирование данных в этом реестре - это и есть редактирование элементов справочника (кроме этого мы можем быстро редактировать “Название” элементов справочника непосредственно через виджет выбора).

  1. Добавление элементов в справочник

Добавление новой строки в реестр — это добавление элемента в справочник.

  1. Удаление элементов из справочника

Примечание

Удаление строки из реестра влечет удаление объекта целиком, включая все его свойства, даже те, которых не видно в этом реестре.

Удаление строки из реестра — это удаление элемента из справочника (даже если в реестре не все свойства справочника — удаление строки влечет удаление элемента целиком, включая все его свойства). Система не позволит удалить элемент из справочника, если на него есть ссылки из каких-либо других объектов системы.

  1. Добавление новых свойств элементам справочника

Мы можем добавить любой заголовок столбца в этот реестр. Нужно отметить у него “может быть пустым”. Тогда при просмотре реестра мы увидим, что в реестре появился соответствующий пустой столбец, который мы можем редактировать.

Загрузка числовых значений

Итак, в QuBeQu загружены справочники, в разрезе которых мы хотим анализировать некоторую числовую величину.

Для начала рассмотрим подробнее понятие «Аналитические признаки». Аналитическим признаком числового показателя мы называем некоторый другой показатель (с типом справочник, период или да/нет), в разрезе которого мы хотим анализировать данные.

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

При этом, допустим, что поставщики разделены на несколько категорий. В этом случае — «Категория поставщика» — это тоже признак для показателя «Объем закупок». Однако он считается признаком «по цепочке», т.к. фактически у закупки в исходных данных такого признака нет. На самом деле «Категория поставщика» это признак для показателя «Поставщик», а для «Объема закупок» - он просто вытягивается автоматически. Т.е. в QuBeQu у показателя «Объем закупок» следует установить признак «Поставщик», а у показателя «Поставщик» - признак «Категория поставщика».

При создании показателей и справочников через коннекторы, аналитические признаки для них проставляются автоматически, однако при работе с системой часто нужно их корректировать).

Вернемся к задаче загрузки числового показателя.

Как правило, в исходных данных есть некоторый столбец с числами, которые мы хотим агрегировать тем или иным образом в зависимости от признаков. Это простейший вариант — для загрузки нам надо в коннекторе пометить столбец для загрузки в новый числовой показатель. А также пометить все его признаки для загрузки:

  • для справочников у нас уже должны быть созданы соответствующие показатели (если мы не создаем справочник «на лету»);

Примечание

Предпочтительно использование типа “Период”, поскольку тип “Дата и время” не позволяет агрегировать значения.

  • для дат или периодов мы можем использовать существующий системный показатель «Период» либо создать новый показатель с типом «период» (мы не используем тип «Дата и время» — т.к. он не позволяет агрегировать значения);
  • для показателей «Да/Нет» можем создавать новые и грузить в них (при загрузке «0», «False» и «false» воспринимаются как «Нет», а «1», «true» и «True» — как «Да»).

Если данные грузятся из БД, ссылки на справочники (другие таблицы) скорее всего реализованы с помощью идентификаторов объектов. В этом случае для столбца, содержащего ссылку на загруженную ранее таблицу-справочник, нам надо установить не только показатель в который грузятся данные, но и показатель, значения которого на самом деле в этом столбце.

Например, в БД есть таблица закупок, и таблица контрагентов. В таблице закупок есть ссылка на поставщика — т.е. на некоторого контрагента. При этом ссылка реализована через идентификатор контрагента. Если справочник контрагентов в QuBeQu был создан (загружен из БД) согласно описанию выше, то у элементов справочника уже есть как минимум два свойства — «Название» и «id(контрагенты)», а также есть показатель «Контрагенты», берущий значения из этого справочника.

Таким образом при настройке коннектора для таблицы закупок нам необходимо будет установить, что столбец «Поставщик» загружается в показатель «Контрагенты», но ссылается на поле «id(контрагенты)».

Либо мы можем завести новый показатель «Поставщик», из справочника «Контрагенты», но так же будет необходимо указать, что в столбце ссылаемся на поле «id(контрагенты)».

Описанные выше принципы загрузки справочников и числовых значений в QuBeQu позволяют оперативно получить возможность анализа существующих данных.

Типовые операции

Опишем, как выполнять некоторые типовые операции в QuBeQu.

Загрузка из Excel

Загрузка из файлов имеет ряд особенностей, на которых остановимся ниже.

Первый вариант загрузки данных - это загрузка с помощью коннектора.

Чтобы файл правильно распознался в коннекторе, необходимо, чтобы в первой строке находились названия столбцов, со второй строки и ниже находились данные. В файле не должно быть объединенных ячеек или формул. Так же тип данных во избежание ошибок должен быть “текст”.

Примечание

Необходимо, чтобы в первой строке находились названия столбцов, со второй строки и ниже находились данные. В файле не должно быть объединенных ячеек или формул. Так же тип данных во избежание ошибок должен быть “текст”.

Каждая строка в файле породит отдельный объект в системе. Поэтому в строке должна быть единица информации:

НЕПРАВИЛЬНО:

_images/guide_01-wrong.png

ПРАВИЛЬНО:

_images/guide_01-right.png

Дополнение справочника из другого источника

Допустим, мы создали справочник по данным из одной системы, и теперь хотим добавить в него данные из другой системы или файла.

Например, у нас есть справочник “Номенклатура”, созданный из 1С, а некоторая часть товаров ведется вручную, в Excel, и в 1С не учитывается. При этом, в QuBeQu мы хотим иметь один общий справочник товаров. Допустим, что в нашем существующем справочнике, созданном из 1С, определены два столбца: “Название” и “id(номенклатура)”

Для того, чтобы дополнить справочник данными из excel, нам нужен будет лист excel с элементами, которые мы хотим добавить. Для каждого элемента следует указать название и идентификатор.

После создания коннектора к этому файлу, нужно выбрать соответствующий лист, и указать, что мы грузим его в существующий справочник “Номенклатура”. Названия элементов, соответственно, грузим в показатель “Название”, а идентификаторы — можем грузить в “id(номенклатура)”. При этом для идентификатора следует указать “ключ” и “обязательный”. Можно загружать.

Обратите внимание, что в этом случае могут измениться существующие элементы справочника, если значение ключа совпадет в 1С (точнее в уже загруженных в QuBeQu данных) и в нашем файле.