Зачастую нам не хватает стандартных полей, которые представлены в системе для запросов и оперативных запросов. Для этого существует два пути решения. Первый это создание полей в инфо-наборе (транзакция SQ02). В откры-том инфо-наборе слева выбираем инфо-тип, нажимаем правую клавишу мыши и «Дополнит. информация к узлу». Открывается окно с дополнительными полями. Создаем по кнопке новое поле, прописываем его тип. Далее встаем на него мышкой, нажимаем на кнопку «Кодир. для поля» и открывается редактор. Вот здесь можно писать абап код для вычисления данного поля. Принцип работы аналогичен, как будто вы в цикле (loop) обрабатываете запись из структуры.
Предыдущий вариант хорош, когда нужно для конкретного инфо-набора прописать пару уникальных полей. Если же нужно сделать поле, которое будет использоваться и в других инфо-наборах, то придется немного по-порграммировать. Для этого для нужного нам ИТ открываем структуру CI_P****_AF в SE11, где **** — номер инфо-типа, к которому будем добавлять поле. В структуру добавляем свое поле. Теперь нужно сообщить информационной системе, что это поле как-то должно вычисляться. Открываем таблицу T770AF и по аналогии со стандартными полями для нашей структуры прописываем функциональный модуль, который будет вести расчет. За образец берем ФМ RPAQ_GET_AF_NNNN, копируем в свой ФМ и пишем в него логику вычисления поля. Теперь осталось открыть нужный инфо-набор, в меню «Инфо-набор – Дополнительные функции» выбираем «Актуализировать дополнительные HR поля». Система прочитает настроечную таблицу и добавит наши поля в раздел «Дополнительные поля» соответствующего инфо-типа. Остается перенести их в нужную группу полей, сгенерировать инфо-набор и пользоваться своими трудами.
Добавить комментарий
Для отправки комментария вам необходимо авторизоваться.