Признаки HR. Транзакция pe03

Всем известно, что HR стоит немного особняком от всего ERP, и если консультант поставит задачу по созданию признака разработчику из ERP это может вызвать некоторое недоумение. Т.к. последний может подумать о признаках из ММ. Это абсолютно разные вещи. Признак в HR выглядит вот так:

Рис 1. Пример признака

В HR Признак представляет собой CASE для принятия решения. Его даже можно отладить поставив точку. Для этого зайдем в транзакцию PE03 и введем ИМЯ_ПРИЗНАКА. Выберем переключатель Атрибуты и нажмем "Просмотр". В открывшемся окне, можем увидеть имя сгенерированной программы. Например, для стандартного признака MMETA, который мы видим на Рис 1. мы найдем программу /1PAPA/FEAT000MMETA. "

Рис 2. Программа, сгенерированная для признака MMETA

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

Создание признака

Для ведения признаков существует транзакция PE03.
Зайдем в транзакцию и введем желательное имя для признака, установим переключатель на "Атрибуты".

Рис 3. Транзакция PE03

Нажимаем "Создать". При этом попадаем на экран обработки признака. Нам надо ввести региональные настройки

Рис 4.

Выбираем страну или все страны и выбираем компонент.

Рис 5.

Возвращаемся на предыдущий экран и нажимаем кнопку "Структ."

Рис 6.

Для примера мы укажем структуру p0001( Именно ее мы будем подавать, для получения значения признаков в ФМы для чтения ). Но можем использовать любую.
Теперь мы должны выбрать поля из структуры, которые будем использовать в узлах нашего кейса.
Замечание: почему-то в табличке "Действ. поля для принятия решений", навигация осуществляется только при помощи кнопок PGDOWN PGUP. Может такое только у меня, но имейте ввиду.

Поле "Вид передачи" определяет то хотим мы получать результат одним значением или списком значений.

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

Вообще, можно делать иерархии признаков(галка "подпризнак"), но это используется очень редко. Мы рассматриваем самый простой пример.

Сохраняем изменения и возвращаемся на главный экран транзакции PE03.

Рис 7.

Мы должны построить дерево принятия решений. Т.е. Цепочки значений по которым мы получи то или иной код возврата.Создание этого дерева интуитивно понятно. Выделяем нужный узел, далее вставляем вставляем следующий и т.д. или удаляем\изменяем текущий.

Рис 8. Спозиционировались на узле

 

Рис 9.

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

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

Признак - возможность выбрать подпризнак

Программа - Можно указать программу, из которой будет вызываться подпрограмма EXT_CALL_F , если до нее дойдет.

Операция отладки - срабатывание отладки для пользователя.

Рис 10.

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

Если WERKS = CA02 - Признак запустит программу.
Если WERKS = GB01 и PERSG = 2 - Признак вернет "Возврат 1"
Eсли werks какой либо другой - сработает отладчик.
Думаю, логика работы понятно. Тем более вы всегда можете поставить точку и посмотреть почему одно, а не другое.

Рис 12. Не забываем сгенерировать

Получение значение признаков.

Для получения значения признаков существуют специальные ФМ HR_FEATURE_BACKFIELD для признаков с единичным возвратом и HR_FEATURE_BACKTABLE для признаков с табличным результатом.

Пример кода для нашего признака.

 

 

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

Ваш адрес email не будет опубликован.