SAP BI-IP в BW/4HANA часть 1: Hello world (ADSO + Aggregation Level + BEx Query).

Другие статьи цикла:

SAP BW как хранилище

Изначально SAP BW создавалось как хранилище данных для того, что бы решить следующие проблемы:

  • Освободить ERP систему от тяжелых аналитических рассчетов;
  • Освободить ERP систему от массива данных, необходимых только для построения отчетности (витрины данных);
  • Упростить анализ и поиск ошибок в потоках данных (благодаря функционалу Data Flow и специальной архитектуре – см. SAP LSA++);
  • Использовать решения SAP, позволяющие работать с функционалом “гибкой” отчетности (SAP Analysis For Microsoft Office, SAP BusinessObjects Web Intelligence, SAP Lumira и т.д.). Такие решения позволяют пользователям самостоятельно создавать отчеты, выбирая признаки и показатели.

SAP BW как транзакционная система

Предпосылкой к превращению SAP BW из аналитической в транзакционную систему стало решение SAP Analysis for Microsoft Office. Данное решение представляет из себя надстройку над MS Excel, которое позволяет в Excel напрямую работать с данные SAP. Данное решение стало популярным в тех бизнес процессах, где пользователи много использовали MS Excel, т.к. позволяло избежать лишних выгрузок из SAP в MS Excel и получать актуальные данные напрямую.

Использование SAP Analysis создало потребность на то, что бы через функционал MS Excel можно было не только просматривать данные напрямую из SAP, но и вводить данные в SAP. Что бы удовлетворить спрос на данные запрос, команда SAP разработала функционал SAP Business Intelligence Integrated Planning (SAP BI-IP), по сути доработав стандартный маханизм просмотра OLAP кубов.

Данное решение мы и будем изучать в этом цикле статей.

Ограничения SAP BW как транзакционной системы.

Т.к. SAP BI-IP проектировалась не как отдельное решение, а как доработка функционала по промотру OLAP кубов, то оно имеет ряд ограничений, которые стоит учитывать при проектировании архтектуры системы, которые описаны в SAP Note 1637199.

Практика

Что будем делать.

В этой статье мы сделаем “Hello world!” в мире SAP BI-IP – функционал, который позволит ввести в Microsoft Excel (при помощи SAP Analysis for Microsoft Office) данные по стоимости (в долларах) и мощности (в лошадиных силах) для автомобилей (один автомобиль будет характеризоваться брендом и моделью) и сохранить их в БД SAP при нажатии на кнопку “Сохранить”.

Функционал будет состоять из следующих элеметов: (подробнее о них будет ниже):

  • BEx query – объект, позволяющий сформировать набор признаков и показателей, доступных для ввода;
  • Aggregation level – объект SAP BW, позволяющий определить минимальный срез, на который будут записаны данные;
  • ADSO – объект SAP BW, позволяющий физически хранить данные.

Наша модель данных будет состоять из следующих признаков и показателей:

  • YEAR – календарный год, на который мы планируем данные;
  • BRAND – марка автомобиля;
  • MODEL – модель автомобиля;
  • COLOR – цвет автомобиля;
  • PRICE – стоимость автомобиля (в долларах США);
  • POWER – мощность автомобиля (в лошадиных силах).

Результат работы будет выглядеть следующим образом:

IDE, используемая при написании статьи:

Eclipse IDE for Enterprise Java Developer 2020-03 (4.15.0) c компонентом Modeling Tools for SAP BW/4HANA and SAP BW powered by SAP HANA version 1.22.17.

Шаг 1. Создаем InfoArea

Правило хорошего тона – при проведении НИОКР или написании учебных статей использовать отдельную инфо-область, объекты которой никогда не поедут дальше стенда разработки. Обычно такие инфо-области называют (в зависимости от правил нейминга на проекте) ZZ, SANDBOX, ZSANDBOX, TEMP и т.д. В нашей статье назовем эту область ZZ (технический ключ) и SANDBOX (наименование).

Внутри данной инфо-области нам необходимо создать инфо-область для нашего проекта (ZZ_CARS), внутри которого еще несколько инфо-областей, согласно технологии LSA++ (на рисунке ниже инфо-областей чуть больше, они понадобятся в дальнейших статьях):

  • Уровень справочников
  • Уровень интегрированного планирования

Шаг 2. Создаем InfoObject

В инфо-области ZZ_CARS_U необходимо создать 3 признака и 2 показателя:

  • ZZE0001 BRAND – Бренд автомобиля;
  • ZZE0002 MODEL – Модель автомобиля;
  • ZZE0003 COLOR – Цвет автомобиля.
  • ZZI0001 POWER – Мощность двигателя в лс;
  • ZZA0001 PRICE – Цена автомобиля, это стандартный показатель.

При создании признаков необходимо проставить галочки “Master data” и “Texts”. При создании показателей необходимо обратить внимание на “Key figure Type”. В итоговом варианте у вас должно получиться как на скриншотах ниже.

Шаг 3. Добавляем данные в Brand и Model

Вручную добавлять или редактировать данные в инфо-объектах можно с помощью функционала “Ведение основных данных”. Для этого необходимо нажать правой кнопкой мыши на инфо-объеки и нажать “Manage attributes” или “Manage texts”.

Откроется интерфейс Fiori, в котором необходимо выбрать “Другие действия” -> “Ведение основных данных”

Откроется web интерфейс ведения основных данных, в которых надо ввести необходимые данные и нажать на “Сохранить”. При желании можно ввести текстовую расшифровку. В нашем случае я ввел 2 бренда – BMW и Mercedes.

Аналогично заполняем и для моделей машин.

Шаг 4. Создаем ADSO

На данном шаге нам необходимо создать ADSO (Advaced Data Store Object) – объект SAP, который будет содержать данные по автомобилям.

ADSO необходимо создать в инфо-области “Интеграционное планирование” (CARS_I). Нажимаем правой кнопкой мыши и выбираем Create -> ADSO (Advances Data Store Object).

Заполняем как на скриншотах ниже.

Данные в ADSO могут попадать двумя способами:

  • Через трансформации – SAP BW
  • Через уровень агрегации – SAP BI-IP

Что бы выбрать второй вариант необходимо проставить галку “Planning-Enabled” и выбрать подходящий для этого тип ADSO.

Логика выбора простая: если планируете использовать “Признаки как показатели”, то выбирайте “DIrect Update DataStore Object”, если нет, то “Data Mart DataStore Object”.

На вкладке “Details” необходимо добавить все признаки и показатели как на картинке ниже. При добавлении признака Color проставьте “Use Characteristic as Keyfigure”.

После того, как вы добавили все признаки и показатели в ADSO необходимо выполнить активацию, нажав на значок активации на панели Eclipse.

Важно! После активации при первом создании ADSO необходимо переключить его из “режима загрузки” в “режим планирования”. Для этого нажмите на ADSO правой кнопкой мыши и нажмите “Manage the DataStore Object (advanced)”.

Выбираем сверху “Planning”

Шаг 5. Создаем Aggregation Level.

В SAP BI-IP планирование невозможно без уровня агрегации. Уровень агрегации – это набор полей, которые будут учавствовать в планировании. Набор признаков в уровне агрегации определяют минимальные срез, на который мы будем записывать данные. Для ADSO типа “Direct Update” уровень агрегации по-определению не может быть меньше, чем набор ключевых полей.

Уровень агрегации необходимо создать в инфо-области “Интеграционное планирование” (CARS_I).

Заполняем уровени агрегации как на рисунках ниже.

Необходимо сохранить и активировать уровень агрегации по аналогии с ADSO.

Шаг 6. Создаем BEx Query.

Теперь нам необходимо создать BEx Query для того, что бы определить как будет выглядеть форма ввода. Для этого нажмите на уровень агрегации правой кнопкой мыши и нажмите “Create” -> “Query”.

Настройте BEx запрос как на скриншотах ниже. При выполнении настроек на вкладке “Sheet definition” у показателей Price и Power в свойствах необходимо проставить”Input Ready”. На вкладке “General” необходимо проставить “Start Query in Input Mode”

Сохраняем запрос.

Ша7. Открываем запрос в SAP Analysis.

Заходим в транзакцию RSRT, выбираем Analysis Office и нажимаем “Execute”.

Если у вас установлен SAP Analysis, то откроется рабочая книга с BEx запросом, в которой можно ввести данные. Давайте введем новые строки, заполним показатели и сохраним данные

После сохранения данные будут записаны в ADSO.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *