Создание нового сценария для инфо-типа 1222 (Часть 1)
В продолжение заметки про корректный способ ведение инфо-типа 1222 «Общее ведение атрибутов», поговорим про создание нового атрибута для этого инфо-типа. Всего будет две заметки по этой теме, и отличаться они будут в следующем:
- В первой части будет рассмотрен пример создания нового сценария для инфо-типа 1222 с возможностью ручного ввода значения
- Во второй части будет рассмотрен пример создания нового сценария для инфо-типа 1222 с возможностью выбора значений из Z* таблицы
Если интересно, не останавливайте свое чтение на этом предложении.
Как я обычно люблю нудеть на этих страницах, необходимо поставить перед собой задачу. А задача будет выглядеть следующим образом: необходимо создать новый сценарий и атрибут для инфо-типа 1222. Для атрибута сценария предусмотреть ручной ввод значения. Сделать доступным новый сценарий для объекта «S - Штатная должность».
Начнем с того, что так называемый сценарий для инфо-типа 1222 — суть подтип этого самого инфо-типа. Таким образом, для начала необходимо определить новый подтип.
1. Создание подтипа для инфо-типа 1222
Открываем SPRO по следующему пути
IMG: Менеджмент персонала -> Организационный менеджмент -> Основные параметры настройки -> Расширение моделирования данных -> Ведение инфо-типов -> Ведение подтипов
Создайте новую запись подтипа для инфо-типа 1222
Затем определите временную привязку для создаваемого подтипа и объекта, на котором он будет вестись
Сохраните созданную запись.
2. Создание нового сценария для инфо-типа 1222
Откройте в транзакции SM30 таблицу T77OMATTR и, находясь на узле Сценарии, создайте новую запись:
Обратите внимание на поля Подтип, и Путь анализа. Для первого мы используем значение, которое было определено на первом шаге (см. раздел №1 Создание подтипа для инфо-типа 1222), для второго же используем значение, которое будет использоваться для наследования данного сценария на все подчиненные элементы. В стандартных настройках сценариев используется путь анализа SBESX, но для нашего примера, в целом, он не нужен, так как мы не планируем использовать механизм наследования. Но стоит иметь ввиду, что если разрешить ведение нового атрибута на уровне организационных единиц, то этот же атрибут будет унаследован всеми подчиненными этой организационной единице элементами (то есть штатными должностями)
Сохраните новую запись.
3. Создание нового атрибута
Находясь в той же настроечной таблице откройте узел Атрибуты и создайте новую запись
Укажите код атрибута, его наименование, а также укажите имя таблицы и поля, на основании которых будет возможно сохранять значения для данного атрибута. Сохраните созданную запись.
4. Присвоение атрибута сценарию, и определение допустимости типов объектов
Откройте узел Сценарии настроечной таблицы T77OMATTR, выберите ранее созданный сценарий и откройте узел Атрибуты/Сценарий
Так как согласно легенде, наш сценарий будет доступен только для штатных должностей, то наследование этих данных на ниже стоящие элементы нам не нужно. Сохраните внесенные изменения, и откройте узел Типы объектов
Создайте новую запись для вашего сценария/атрибута и выберите соответствующий тип объекта. Переходим к тестированию.
5. Тестирование
Тестовый кейс не представляет из себя ничего сверхъестественного. Откройте транзакцию PPOMA, в диспетчере объектов выберите какую-нибудь штатную должность (либо тот объект, для которого вы разрешили ведение своего атрибута/сценария), и откройте закладку Атрибуты
В выпадающем списке выберите свой сценарий, и проверьте, стал ли доступен атрибут
Отлично. Атрибут успешно выбран. Теперь внесем какое-нибудь значение в одноименный столбец и нажмем на кнопку Сохранить
Поставленная перед нами задача успешно решена.
NB Стоит обратить внимание на несколько моментов, которые могут возникнуть при настройке новых сценариев/атрибутов.
Каким образом определить не текстовое значение для атрибута, а цифровое?
В настройках сценария необходимо определить соответствующее поле таблицы, не подразумевающее текстовый ввод
Если в нашем примере поменять значение поля, скажем, на OBJID таблицы HRP1222, сохранить, и попробовать завести текстовое значение атрибута в транзакции PPOMA
то получим ошибку вида
Каким образом предоставить пользователю возможность ввести два значения для одного атрибута, например, верхнее и нижнее значения чего бы там ни было?
В настройках атрибута установить флаг Область
в транзакции PPOMA ведение этого атрибута должно будет выглядеть следующим образом