Импорт данных из внешних источников через промежуточный слой в среде PlanDesigner Цели урока: - Изучить импорт данных из внешних источников через промежуточный слой - Провести план-фактный анализ «Бюджета продаж» Оглавление 1. Введение ..............................................................................................................................1 2. Подготовка объектов PlanDesigner к импорту данных из промежуточного слоя и план-фактному анализу.............................................................................................................2 3. Описание «специфических» измерений IMPORT_TYPE и IMPORT_DATES.............3 Добавление измерения IMPORT_TYPE ..............................................................................3 Добавление измерения IMPORT_DATES ...........................................................................4 4. Использование Excel для подготовки промежуточного слоя ........................................4 5. Импорт фактических данных «Бюджета продаж» ..........................................................7 6. Загрузка данных из Excel в промежуточный слой ........................................................10 7. Импорт фактических данных из промежуточного слоя в PlanDesigner ......................15 8. План-фактный анализ «Бюджета продаж» ....................................................................18 9. Задание для самостоятельной подготовки .....................................................................19 1. Введение Промежуточный Слой - это несколько таблиц БД определенной структуры. В них загружаются данные из используемой Учетной Системы (или нескольких УС). В результате работы "Импорта из ПС" эти данные перегружаются по определенным правилам в текущую БД PlanDesigner (ПД) , обеспечивая : создание/обновление структуры кубов (обычное правило: 1 счет из УС = 1 куб в ПД) 1 создание/обновление измерений (обычное правило: измерение в ПД ) загрузка/обновление данных в вышеуказанных кубах 1 аналитика в УС = 1 Общая схема импорта из промежуточного слоя показана на рисунке: ByteCollector Excel 1C Промежуточный слой Другие источники PlanDesigner 2. Подготовка объектов PlanDesigner к импорту данных из промежуточного слоя и план-фактному анализу Создадим два измерения: 1. Измерение «Кварталы», которое будет использоваться для целей загрузки данных отдельно по каждому кварталу. 2. Измерение «План-факт» используемое для план-фактного анализаза. Создадим куб «12. Анализ план-факт» 2 3. Описание «специфических» измерений IMPORT_TYPE и IMPORT_DATES Для того, чтобы выполнить процедуру импорта измерений нужно подготовить 2 специфических измерения, которые должны удовлетворять нескольким критериям. Для того, чтобы подготовить эти измерения нужно запустить Plan Designer, в главном меню выбрать пункт «Объекты» и запустить «Список измерений». В окне «Список измерений» найти или добавить измерение с служебными кодами IMPORT_TYPE и IMPORT_DATES. Добавление измерения IMPORT_TYPE Для новой записи нужно определить название (оно может быть совершенно произвольным), а затем в поле «Код (служебный)» записать ключевое слово IMPORT_TYPE. Затем на введенной записи нужно дважды щелкнуть мышью и заполнить атрибуты этого измерения так, как показано на рисунке. 3 При заполнении списка атрибутов измерений их название не играет никакой роли. Важным является количество атрибутов (6 значимых и 1 не значимый атрибут), а также код атрибута. Они должны быть такими, как показано на рисунке (см. выше). Добавление измерения IMPORT_DATES Для новой записи нужно определить название (оно может быть совершенно произвольным), а затем в поле «код (служебный)» записать ключевое слово IMPORT_DATES. Затем на введенной записи нужно дважды щелкнуть мышью и заполнить атрибуты этого измерения. Это измерение может содержать произвольное кол-во атрибутов. Для процедуры импорта данных важно, чтобы это измерение содержало интервалы дат, такие же, как и в таблице out_value (см. ниже). Пример заполнения представлен на рисунке: Пример, поясняющий работу импорта с измерением IMPORT_DATES: допустим у нас в таблице «промежуточного слоя» out_data (описание таблиц см.ниже) имеется 2 записи. В одной записи значение полей Dt_begin и Dt_end равны 01.01.02 и 31.03.02 (соответственно), а в другой записи - 01.01.02 и 30.03.02. В результате импорта, первая из этих записей будет проимпортирована, так как значения полей Dt_begin и Dt_end совпадают с началом и концом интервала в первом атрибуте измерения IMPORT_DATES, а вторая нет, так как в этом измерении такого интервала, который указан в полях Dt_begin и Dt_end - нет. 4. Использование Excel для подготовки промежуточного слоя Для того, чтобы подготовить таблицы «промежуточного слоя» нужно создать в Excel’е книгу с 3-мя листами. Листы нужны назвать также, как и таблицы «промежуточного слоя» (см . рисунок). 4 Далее нужно заполнить каждый лист данными. Первая строка каждого листа должна содержать названия полей. Например, для таблицы out_analit первая строка должна выглядеть следующим образом: Out_analit – содержит описание измерений; Поля таблицы out_value_analit: 1. al_id –структура ПС предусматривает хранение/перезагрузок в нем произвольного количества различных экспортов из УС. Различаются они по полю al_id , присутствующего в каждой из этих таблиц. При работе в этом режиме программа предварительно перегружает часть данных из 3-х таблиц ПС во внутреннюю структуру ( временные таблицы ). При этом надо указать, какие именно данные перегружаются - для этого используется это поле; 2. Code_analit – префикс измерения; 3. Code_attr – содержит код атрибута измерения, входящего в куб; 4. Name_attr – содержит название атрибута измерения, входящего в куб; 5. Code_parent – содержит код атрибута , который является родительским по отношению к данному атрибуту. Родительским атрибутом может являться только атрибут из того же самого измерения. 6. order_attr - порядок атрибутов внутри формул. Примечание: в этой таблице перечисляются атрибуты измерений и устанавливается иерархия атрибутов в измерении, т.е. какой атрибут является «терминальным», а какой атрибут аккумулирует значения других атрибутов. Число строк в этой таблице равно числу всех импортируемых атрибутов. Например, если импортируется 1 куб, в этом кубе содержится 3 измерения, в первом измерении 2 атрибута, во втором измерении 3 атрибута, а в третьем измерении 4 атрибута, тогда число записей в таблице out_analit будет равно 2 атрибута из первого измерения + 3 атрибута из второго измерения + 4 атрибута из третьего измерения = 9, т.е. количеству всех атрибутов по всем измерениям во всех кубах. В остальных листах первые строки нужно заполнить аналогичным образом, т.е. перечислить в первой строке все поля таблицы. В остальных строках (начиная со второй строки) записываются значения этих полей. 5 Таблица Out_structure: Out_structure – содержит общее описание кубов, а также измерений, которые входят в эти кубы. Поля таблицы Out_structure: 1. Account - содержит имя куба, в который будут импортированы данные; 2. Code_analit – содержит префикс измерения. Префикс измерения представляет собой некий уникальный код, который служит для связи с таблицей out_analit; 3. Name_analit – содержит название измерения. В названии измерения допускается использование пробелов. В результате импорта из промежуточного слоя измерение будет создано с этим названием; 4. Order_analit – N-колонки, в таблице out_data, которая содержит значения атрибутов измерения в кубе. Таблица out_data содержит атрибуты: Code_analit_1, Code_analit_2, … , Code_analit_10. Всего 10 атрибутов. Атрибут out_number определяет какая колонка (с каким номером) будет содержать значения атрибутов данного измерения. 5. al_id - cтруктура ПС предусматривает хранение/перезагрузок в нем произвольного количества различных экспортов из УС. Различаются они по полю al_id , присутствующего в каждой из этих таблиц. При работе в этом режиме программа предварительно перегружает часть данных из 3-х таблиц ПС во внутреннюю структуру ( временные таблицы ). При этом надо указать, какие именно данные перегружаются - для этого используется это поле. Примечание: в этой таблице перечисляются измерения и указывается “местоположение” этих измерений в кубе. Число строк в этой таблице равно числу всех импортируемых измерений. Например, если импортируется 2 куба и , в первом кубе , содержится 3 измерения, а во втором кубе содержится 4 измерения, тогда число записей в таблице Out_structure будет равно 3 измерения в первом кубе + 4 измерения во втором кубе = 7, т.е. количеству всех измерений по всем кубам. Таблица Out_data: Out_data – содержит описание данных Поля таблицы out_value: 6 1. 2. 3. 4. 5. 6. al_id – cтруктура ПС предусматривает хранение/перезагрузок в нем произвольного количества различных экспортов из УС. Различаются они по полю al_id , присутствующего в каждой из этих таблиц. При работе в этом режиме программа предварительно перегружает часть данных из 3-х таблиц ПС во внутреннюю структуру ( временные таблицы ). При этом надо указать, какие именно данные перегружаются - для этого используется это поле. Account – имя куба, к которому относится данное измерение; Dt_begin – начальная дата временного интервала, к которому относятся данные; Dt_end – конечная дата временного интервала, к которому относятся данные; saldo, oborot, oborot_debet, oborot_credit, saldo_debet, saldo_credit, Out_Value – поля вещественного типа. Содержат собственно величины импортируемых данных. Code_analit_1, Code_analit_2, … , Code_analit_10 – содержат сведения о том, к каким атрибутам измерения относятся импортируемые данные. Т.е. для каждой комбинации атрибутов измерений в таблице Out_data появляется строка со значением, а поля Code_analit_N указывают, на пересечении каких атрибутов это значение возникает. 5. Импорт фактических данных «Бюджета продаж» Фактический «Бюджет продаж» имеет следующие показатели: Проведем импорт фактических данных за 1-ый квартал 2013г. Подготовим промежуточный слой по фактическим данным. Куб будет называться «Импорт из ПС», измерения назовем «Время» (столбцы куба) и «Товары» (строки куба). Для этого случая промежуточный должен быть заполнен следующим образом: Out_structure: 7 ВНИМАНИЕ!!! Поле al_id должно соответствовать id атрибута «1 квартал» измерения «Кварталы»: 8 Out_analit: Out_data: Для таблицы out_data надо выполнить еще одно действие перед закачкой данных. Нужно выбрать лист out_data, выбрать ячейки со значениями из столбцов Dt_begin и Dt_end и задать формат ячеек «дата» как показано на рисунке: Затем нужно выбрать ячейки со значениями из столбцов Saldo, Oborot , Oborot_debet, Oborot_credit, Saldo_debet, Saldo_credit, Out_Value и задать формат ячеек «числовой» как показано на рисунке: 9 6. Загрузка данных из Excel в промежуточный слой После заполнения всех таблиц необходимо сохранить книгу Excel с любым именем в формате *.xls. Затем нужно запустить “SQL Server Management Studio”. Выбрать в нем пункт “Databases”, затем выбрать базу “demo_pd”, а затем выбрать пункт “tables”. Появляется окно приложения “SQL Import and Export wizard”, в нем в качестве источника данных нужно указать “Microsoft Excel”, а в поле “Data source” нужно указать заранее подготовленную книгу с данными. 10 После этого нужно указать приемник данных. Если выбирается пункт «Use SQL Server authentication», тогда нужно указать имя пользователя и пароль. 11 После нажатия на кнопку далее, если все указано правильно появляется окно: В нем нужно выбрать 1-ый пункт и нажать кнопку «Далее». В следующем окне появляется список таблиц и нужно выбрать таблицы, которые будут проимпортированы. Для этого в первом столбце каждой таблицы нужно поставить отметку: Затем в столбце «Destination» нужно указать правильные имена таблиц из предложенного списка таблиц. Если этого не сделать, то будут созданы новые таблицы с другими именами (знак $ в конце имени) и импорта не произойдет. 12 Затем для каждой таблицы нужно нажать кнопку “Edit Mapping ” и выбрать пункт «Delete rows in destination table»: Это нужно для того, чтобы очистить таблицы от данных, которые остались от предыдущего импорта. После выполнения этих действий нужно нажать кнопку «Далее», в следующем окне никаких параметров менять не нужно и также нажать кнопку «Далее». В результате появляется следующее окно: 13 Здесь нужно нажать кнопку «Finish». После этого начнется процесс импорта данных. Если импорт данных прошел без ошибок появится следующее сообщение: Импорт данных завершен. 14 7. Импорт фактических данных из промежуточного слоя в PlanDesigner В меню «Инструменты» выбрать «Импорт», далее «Импорт из ПС» Откроется окно: 2 3 4 1 5 7 6 1. Необходимо ввести название импорта 2. С помощью технологии Drag&Drop перетащить «Модель годового планирования» в поле «Модель» 3. С помощью технологии Drag&Drop перетащить измерение «Кварталы» в поле «Измерение» 15 4. 5. 6. 7. Выбрать атрибут «1 квартал» Установить требуемые параметры импорта Сохранить импорт Запустить выполнение импорта Описание окна импорта: Верхняя часть окна: Мульти? - признак того, что данный импорт используются в многопользовательском режиме. Структура ПС предусматривает хранение/перезагрузок в нем произвольного количества различных экспортов из УС. Различаются они по полю al_id, присутствующего в каждой из этих таблиц. При работе в этом режиме программа предварительно перегружает часть данных из 3-х таблиц ПС во внутреннюю структуру (временные таблицы ). При этом надо указать ,какие именно данные перегружаются - для этого используется это поле al_id . Измерение - по сути для справки и дальнейшего выбора al_id инструментальными средствами. Атрибут (этого измерения) Код - код этого атрибута в ПД (для справки - чтобы специалист, осуществляющий экспорт из УС, мог корректно его указать в поле al_id). Модель - в какую модель будет выполняться импорт. ∑ - количество запусков импорта. В нижней части окна указываются управляющие режимы : Выполнять проверку ПС - выполнять перед импортом процедуру проверку ПС. При ошибке - не выполнять импорт Не контроллировать изменение имен - при изменении наименования измерения/атрибута - просто заменять их. Если нет - выполнять дополнительные действия(см.ниже) o Считать изменение наименования - ошибкой - считать изменение наименования - ошибкой и импорт не выполнять o Изменение наименования отдельно фиксировать в протоколе - выполнять импорт, при этом изменение наименования отдельно фиксировать в протоколе Импортировать структуру кубов, измерения и данные o Импортировать только структуру - импортировать только структуру кубов и измерения o Импортировать измерения(справочники) - импортировать аналитические значения измерения(справочники) o Импортировать данные - импортировать данные в кубы Использовать измерение время - при импорте данных из ПС автоматически согласовывать дату в данных с атрибутами измерения-времени Использовать измерение IMPORT_TYPE - при импорте данных из ПС считать колонки в данных типа "Сальдо" атрибутами измерения IMPORT_TYPE или брать данные из значения 16 Альтернативное измерение время - для ДАННОГО импорта использовать не стандартное служебное измерение время с кодом IMPORT_TYPE а явно указанное ( на картинке выбрано измерение "Время (1+12м). Измерение просто "притаскивается" из любой доступного в системе объекта с измерениями. При этом у данного измерения проверяется наличие заполненных полей "Начало интервала" и "Конец интервала" у атрибутов этого измерения. Применить режим "Add" - применить режим "Add" или использовать соответствующий параметр Удалить атрибуты, отсутствующие в ПС - удалить атрибуты (ранее импортированные ) из измерения, отсутствующие в ПС ( в режиме Add=no ) Полное пересоздание измерений - полное пересоздание измерений. Режим полезен исключительно при тестировании ПС! Автоматически добавлять атрибут типа "Итого" в измерения - автоматически добавлять атрибут "Итого" ( если измерение - иерархическое ) или "Сумма по измерению" в измерения Чистить ли кубы перед импортом - автоматически очищать кубы от данных перед импортом. Также применяется автоматически при изменении структуры кубов. o При совпадении аналитик - обновлять - если куб не пуст , то при совпадении аналитик - обновлять данными из ПС o При совпадении аналитик - игнорировать - если куб не пуст , то при совпадении аналитик - игнорировать данные из ПС o При совпадении аналитик - суммировать - если куб не пуст , то при совпадении аналитик - суммировать их с данными из Импорт комментариев к ячейкам - импортировать комментарии к ячейкам Импортировать только значимые данные - игнорировать при импорте значения равные 0 . Иначе не импортируются только NULL Реструктуризировать кубы в модели, отсутствующие в ПС Прикреплять новое измерение к текущей модели - автоматически прикреплять новое измерение к текущей модели Внизу, кроме стандартных кнопок ( создать, удалить, печатать...) есть 2 уникальные : - открыть аудит выполнения импорта ( см.ниже) - выполнить импорт После успешного выполнения импорта в «Модели годового планирования» появится куб: 17 8. План-фактный анализ «Бюджета продаж» Создадим следующие связи в кубе «12. Анализ план-факт»: 1. Передаем план: 2. Передаем факт: Создадим макрос расчета куба «12. Анализ план факт» 18 Процедура «Импорт из ПС» перетаскивается из окна «Импорт из ПС» в область макроса с помощью технологии Drag&Drop. После выполнения макроса, в кубе «12. Анализ план-факт», будут сформированы следующие данные: 9. Задание для самостоятельной подготовки Провести импорт данных через промежуточный слой и план-фактный анализ «Бюджета продаж» для 2, 3 и 4 кварталов. 19