2. Теперь нарисуем эти поля на своем подэкране и сделаем обработку полей. С версии 4.0 как я понимаю, создана специальная программа, которая позволяет генерировать так называемую заглушку группу функций, а далее эту группу и созданный нами экран мы добавим в нужную последовательность экранов для нужного вида ОЗМ. Для начального создания используем программу COPYMGD1, вот ее через SE38 и запускаем, пример на рисунке SE38-COPYMGD1.png.
Выполняем программу и типа есть два варианта, если у вас ритейл система то выберите ее, иначе индустриальное решение, рисунок SE38-COPYMGD1-0.png.
Система спросит имя группы функций, само собой начинается с Z или Y, ну например типа так, ну и ответственным себя сделать не забудьте, а затем когда нажмете сохранить, то далее у вас запросится имя пакета и запроса в который будем включать программу, рисунок SE38-COPYMGD1-1.png. Вводим, что оно хочет и ждем, пока будет создаваться шаблон группы функций.
Когда получите сообщение «Группа функций: YMY_MGD1: – создано», можно перейти и посмотреть, что оно там создало, в транзакции SE80 выбираем просмотр группы функции, рисунок SE80-MGD1-N.png. Теперь надо идти в группу функций MGD1 и там найдем подэкран, на который выводится код материала и краткий текст, длинной 40 символов. Я использовал в качестве примера экран «2002 – Основные данные – прочие данные», рисунок SE80-MGD1.png.
Установите курсор на экран и правой кнопкой вызвать контекстное меню и в нем будет команда «Скопировать». Будет открыт экран копирования, рисунок SE80-MGD1-C.png. Экран копируем в нашу созданную группу функций. Так как группа функций называется YMY_MGD1, то программа будет называться SAPLYMY_MGD1, ну а номер экрана уже будет наш 1001. В общем, после копирования группа функций будет выглядеть просто страшно, так как экран потянет за собой ну очень много функционала. Пример на рисунке SE80-YMY_MGD1-1.png.
Как видим, добавилось очень много модулей. Нас будет интересовать появившийся экран 1001. Копию назовем «Длинные тексты материала». Переходим в режим редактирования экрана и жмем кнопку «Формат». Затем удаляем с экрана все поля, которые попали нам из копии и создаем два поля как на рисунке SE80-YMY_MGD1-2.png. Особенно смотрим на то как будут называться поля. Так как поле было добавлено в таблицу MARA, то имена полей экрана должны называться как MARA-ZZ_TXT_ONE и MARA-ZZ_TXT_TWO, это важно, так как иначе работать ничего не будет. Кстати, когда вы назовете поля как в таблице, система предложит вам скопировать определение форматов из словаря, соглашаемся с таким предложением.
Теперь отредактируем логику экрана. Фактически я убрал пару модулей, которые являются лишними. Изначально, логика экрана выглядела как на рисунке SE80-YMY_MGD1-3.png. Я это дело сократил до следующего варианта, как на рисунке SE80-YMY_MGD1-4.png.
Самое интересное, что сколько бы полей мы не добавили к своему экрану, вот этот набор логики выполнения будет корректно обрабатывать данные всех полей, т.е. никаких особых усилий для ведения этих полей прилагать не требуется.
Теперь активируем группу функций и наш экран, опять же если все сделали правильно, то ошибок быть не должно, все корректно активируется.