SAP BI-IP в BW/4HANA часть 2: Отношение признаков (Characteristic Relations).

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

О чем эта статья

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

Однако при вводе данных мы столкнулись с неудобством – несмотря на то, что мы заполнили поле BRAND и выбрали определенную марку автомобиля (например, BMW), в поле MODEL он все-равно предлагает к выбору все возможные модели – в том числе и те, которые принадлежат другим моделям (E200, S600).

Для решения этого неудобства система BI-IP предлагает функционал, которые будет ограничивать допустимые для ввода значения по заданному разработчиком алгоритму. Этот функционал называется “Отношение признаков” (Characteristic Relations).

В этой статье мы разработаем отношение признаков таким образом, что бы при выбранном значении поля Brand (например, BMW) система позволяла вводить только марки, относящиеся к этому бренду (например, X4, X5, X6).

Наглядный результат работы нашей модели (которую мы настроим в этой статье) можно посмотреть на рисунке ниже – до настроенного отношения признаков при заполненном поле BRAND (BMW) в поле MODEL система предлагает выбрать любое значение, а после – только те, которые принадлежат BMW.

Было

Стало

Немного теории

Про отношение признаков в интернете довольно много полезной информации. Со своей стороны могу порекомендовать статьи:

Отношение признаков можно создать одним из 4-х способов:

  • На атрибутах инфо-объекта – легкий, но довольно топорный метод реализации. Быстро настраивается, но никакой логики, кроме “возьми значение из атрибута” заложить не получится;
  • На признаках DSO – такой же легкий, но и такой же топорный метод реализации, как и “на атрибутах инфо-объекта”. Разница лишь в том, что маппинг признаков берется из признаков в DSO, а не из атрибутов. Сложную логику, которая рассчитывается “на лету” вложить не получится;
  • На иерархии инфо-объекта – средний по сложности, тк придется настраивать иерархию. Ни разу не встречал в реальных проектах;
  • На Exit классе – относительно сложный, но и самый гибкий способ, который позволяет рассчитывать логику выбора “на лету”. Во всех проектах, где я принимал участие, мы делали отношение признаков именно таким образом.

Давайте попробуем реализовать один из самых простых способов настроить отношение признаков – на атрибутах инфо-объекта.

Практика

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

Шаг 1. Добавляем атрибут BRAND к инфо-объекту MODEL

Первым делом нам необходимо дообогатить инфо-объект MODEL добавив ему атрибут BRAND. Для этого переходим на вкладу “Attributes”, нажимаем на Add, откроется окно выбора инфо-объекта, который можно добавить как атрибут. Выбираем инфо-объект BRAND и нажимаем на “Ок”

Убеждаемся, что инфо-объект Brand добавлен как атрибут

Не забываем активировать инфо-объект Model

Шаг 2. Заполняем основные данные для атрибута BRAND в инфо-объекте MODEL

После того, как мы добавили атрибут BRAND инфо-объекту MODEL, нам необходимо заполнить данные. Для этого воспользуемся функционалом “Ведение основных данных”. Нажимаем правой кнопкой мыши на MODEL и выбираем “Manage Attributes”.

В открывшемся окне по управлению инфо-объектом необходимо нажать на “Среда” и выбрать “Ведение основных данных”.

Теперь необходимо заполнить каждой модели к какому бренду она принадлежит. Я определил, что E200 и S600 – это Mercedes, а X4, X5 и X6 – это BMW. После заполнения данных нажимаем на сохранить.

Шаг 3. Настраиваем отношение признаков

Отношение признаков создается на вкладке Details инфо-провайдера. Открываем ADSO CARS и нажимаем на Characteristic Relations.

В открывшемся окне выбираем пакет, в котором будет храниться разработка, и нажимаем Finish.

В появившемся окне открываем вкладку “Characteristic Relations”. На данной вкладке можно выбрать каким именно образом мы хотим настроить отношение признаков. Мы настраиваем на атрибутах инфо-объекта, поэтому наживаем на Add Attribute. В появившемся окне необходимо выбрать инфо-объект, который содержит необходимые атрибуты. В нашем случае это MODEL. Выбираем его и нажимаем OK.

Далее необходимо выбрать какие отношение каких характеристик мы будем настраивать. В нашем случае мы хотим определить зависимость BRAND и MODEL. Model мы добавили в абзаце выше, осталось добавить BRAND. Для этого нажимаем на Add и выбираем Brand.

Поздравляю, отношение признаков настроено! Не забываем активировать его и сохранить.

Далее рекомендую переактивировать уровень агрегации (по идее это не требуется, но иногда SAP косячит, так что поможем ему) и можно проверять результат.

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

Заходим в Analysis, открываем BEx запрос . В появившейся таблице в поле BRAND выбираем MERCEDES.

Далее нажимаем на знак вопроса в поле MODEL. Появится окно с возможными вариантами заполнение и, ура, тут будут только те модели, которые в атрибутах имеют BRAND MERCEDES.

Отношение признаков работает и в обратную сторону. Мы можем выбрать любую модель.

В поле BRAND система нам даст выбрать только те марки, которые относятся к выбранной модели автомобиля.

Нажимаем на Сохранить и проверяем, что данные в ADSO обновились.

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

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