Вы находитесь на странице: 1из 15

Добавление своих полей в ОЗМ.

На почитать, как можно добавить свои поля в ОЗМ, можно ноту SAP 44410, как уже писал
без поллитры там разобраться так просто вряд ли выйдет. В общем виде в большинстве
транзакций есть экзит с подэкраном пользователя, куда и можно добавлять свои данные, в
случае с ОЗМ, все немного сложнее, так как ОЗМ, фактически представляет из себя,
большой набор подэкранов, которые можно комбинировать по закладкам и т.д. а так же
дополнять свои подэкраны.

Возможные различные варианты обработки данных, все зависит от того как вы хотите
хранить данные, есть два варианта, в первом случае вы расширяет какую-то из таблиц
путем добавления своих полей данных. Во втором создаете свою таблицу, в которую
пишете данные со своего экрана. В этом случае, еще потребуется активировать экзит,
который срабатывает при сохранении ОЗМ, где нужно будет сохранить данные в свою
таблицу, тут кстати вы должны будете сами обрабатывать чтение данных и их запись, с
проверками новая запись, изменение и т.д. Я рассмотрю первый вариант, когда данные
пишутся в поля, которые находятся в стандартных таблицах системы. Пример предложен
был Marth-ой (http://sapforum.biz/index.php?action=profile;u=163). И так нужно было
добавить на экран ОЗМ на закладку основные данные два поля по 150 символов, которые
содержат более расширенное описание материла, т.е. нужно обойти ограничение в 40
символов для краткого текста ОЗМ. Я не рассматривал вариант, когда такие тексты нужно
вести на разных языках, поэтому данные предлагаю хранить в таблице MARA.

Идем в ведение таблиц, транзакция SE11 и там выбираем просмотр таблицы MARA, и там
выбираем создание дополнительной структуры к таблице.

В появившемся экране выбираем создание нового расширения, начинаем его как обычно
на Z или Y. Я сделал расширение с именем ZMYMARA.

По материалам форума http://sapforum.biz


В данное расширение я добавил два поля длиной 128 символов. Ну, это как говорится,
сколько надо и какие типы надо, такие и добавляете. Пример на рисунке ниже. Обратите
внимание, что поля должны начинаться со сдвоенного символа ZZ, так сказать защита от
дублирования имен.

Когда расширение сделано, активируем всю эту кухню, в принципе ошибок быть не
должно, если правильно назвали и имена полей не совпали с уже существующими полями
в таблице MARA, то активация будет успешной.

Теперь нарисуем эти поля на своем подэкране и сделаем обработку полей. С версии 4.0
как я понимаю, создана специальная программа, которая позволяет сгенерировать так
называемую заглушку группу функций, а далее эту группу и созданный нами экран мы
добавим в нужную последовательность экранов для нужного вида ОЗМ. Для начального

По материалам форума http://sapforum.biz


создания используем программу COPYMGD1, вот ее через SE38 и запускаем, пример на
рисунке SE38-COPYMGD1.png.

Выполняем программу и типа есть два варианта, если у вас ритейл система то выберите
ее, иначе индустриальное решение, рисунок SE38-COPYMGD1-0.png.

Система спросит имя группы функций, само собой начинается с Z или Y, ну например
типа так, ну и ответственным себя сделать не забудьте, а затем когда нажмете сохранить,
то далее у вас запросится имя пакета и запроса в который будем включать программу.
Вводим что оно хочет и ждем.

По материалам форума http://sapforum.biz


После чего получите сообщение «Группа функций: YMY_MGD1: – создано». Теперь
можно перейти и посмотреть, что оно там создало, в транзакции SE80 выбираем просмотр
группы функции, рисунок ниже.

Теперь надо идти в группу функций MGD1 и там найдем подэкран, на который выводится
код материала и краткий текст, длинной 40 символов. Я использовал в качестве примера
экран «2002 – Основные данные – прочие данные».

По материалам форума http://sapforum.biz


Установил курсор на экран и правой кнопкой вызвать контекстное меню и в нем будет
команда «Скопировать». Будет открыт экран копирования.

Экран копируем в нашу созданную группу функций. Так как группа функций называется
YMY_MGD1, то программа будет называться SAPLYMY_MGD1, ну а номер экрана уже
будет наш 1001. В общем, после копирования группа функций будет выглядеть просто
страшно, так как экран потянет за собой ну очень много функционала. Пример на
рисунке SE80-YMY_MGD1-1.png ниже.

По материалам форума http://sapforum.biz


Как видим, добавилось очень много модулей. Нас будет интересовать появившийся экран
1001. Копию назовем «Длинные тексты материала». Переходим в режим редактирования
экрана и жмем кнопку «Формат». Затем удаляем с экрана все поля, которые попали нам из
копии и создаем два поля как на рисунке SE80-YMY_MGD1-2.png ниже. Особенно
смотрим на то как будут называться поля. Так как поле было добавлено в таблицу MARA,
то имена полей экрана должны называться как MARA-ZZ_TXT_ONE и MARA-
ZZ_TXT_TWO, это важно, так как иначе работать ничего не будет. Кстати, когда вы
назовете поля как в таблице, система предложит вам скопировать определение форматов
из словаря, соглашаемся с таким предложением.

По материалам форума http://sapforum.biz


Теперь отредактируем логику экрана. Фактически я убрал пару модулей, которые
являются лишними. Изначально, логика экрана выглядела так:

По материалам форума http://sapforum.biz


Я это дело сократил до следующего варианта, как на рисунке ниже.

По материалам форума http://sapforum.biz


Самое интересное, что сколько бы полей мы не добавили к своему экрану, вот этот набор
логики выполнения будет корректно обрабатывать данные всех полей, т.е. никаких
особых усилий для ведения этих полей прилагать не требуется.

Теперь активируем группу функций и наш экран, опять же если все сделали правильно, то
ошибок быть не должно, все корректно активируется.

И так последний шаг, нужно добавить наш подэкран к ОЗМ. Это выполняется в настройке
экранов ОЗМ, я для примера взял последовательность экранов для вида материала ROH,
тут я не буду расписывать подробности настройки комбинаций полей для подэкранов, так
что будет кратко и так по SPRO: Общая логистика – Основные записи материалов –
Конфигурация основных записей материалов – Определение структуры экранов данных
по последовательностям экранов. Рисунок SPRO-0.png.

По материалам форума http://sapforum.biz


У меня для вида материала ROH определена последовательность 01 – Промышленный
стандарт. Вот туда и добавляю свой подэкран.

По материалам форума http://sapforum.biz


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

По материалам форума http://sapforum.biz


С подэкранами все очень просто, всего может быть определено 20 подэкранов данных на
одну закладку. Для примера у меня это было записано, где-то так как на рисунке SPRO-
3.png.

На самом деле в ОЗМ вся эта кухня выглядит на экране как MM03-1.png, ниже, т.е. как
видим есть группы подэкранов которые выведены на закладку. Предлагаю свой экран
длинных текстов добавить ниже кода материала и краткого текста.

По материалам форума http://sapforum.biz


Для этого идем в к последнему модулю пример на рисунке MY-0.png.

По материалам форума http://sapforum.biz


Обращаем внимание, что в данном случае есть еще 7 пустых подэкранов которые мы
можем использовать. Поэтому становимся в перовое объявление экрана 0001 это строка в
позиции 14 и записываем туда имя свой группы функций и своего экрана, который был
создан ранее. Полное имя группы функций будет SAPLYMY_MGD1 поэтому вносим
изменения как на рисунке MY-1.png ниже:

Затем воспользовавшись кнопками перемещения экрана, двигаем наш экран на вторую


позицию, чтобы было приблизительно как на следующем рисунке. После чего сохраняем
все изменения. Система будет предупреждать, что любые изменения должны быть
продуманы, иначе все может быть очень плохо.

По материалам форума http://sapforum.biz


Теперь идем в просмотр нашей ОЗМ, где увидим наши поля на нужной закладке ОЗМ,
рисунок MM03-1.png.

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

По материалам форума http://sapforum.biz

Вам также может понравиться