В этой статье создадим Maintenance view - ракурс. Maintenance view предоставляет удобный способ управления составными объектами. Данные распределенные по нескольким таблицам часто могут образовывать логический единый объект. Пользователь может просматривать изменять или добавлять такие распределенные данные с помощью Maintenance view. Используем транзакцию SE11.
Maintenance view одна из четырех возможных вьюшек которые можно определить через SE11. Все таблицы которые мы хотим определить в Maintenance view должны быть связаны внешними ключами. Однако просто создав вьюшку мы не сможем управлять данными, нам необходим экран, какой-либо метод для отображения данных содержащихся во вьюшке, какая-либо логика с помощью которой мы сможем производить операции добавления, удаления и изменения данных. Тут на помощь приходит Maintenance generator (он автоматически создает экраны, контролы и логику для управления данными), который дает возможность определить для нашей вьюшки Maintenance dialog.
Итак, появилось модальное окно, где необходимо выбрать интересующий нас тип вьюшки.
Нажимаем Copy и попадаем на экран, где необходимо задать краткое описание и выбрать одну из объединяемых таблиц.
Затем отмечаем таблицу и нажимаем кнопку Relationships.
Появилось окно, где необходимо выбрать вторую объединяемую таблицу. Нажимаем Copy и получаем такой экран.
Перейдем на вкладку View Fields и нажимаем кнопку Table Fields.
Появилось окно, где необходимо выбрать таблицу из которой мы будем выдергивать поля.
Появилось окно, где необходимо выбрать нужные поля.
Выберем необходимые поля и для второй таблицы.
В итоге получили вьюшку с такими полями.
Сохраняем и активируем. Идем в Utilities-->Table Maintenence Generator.
Попадаем на такой экран и выбираем Authorization group.
Теперь необходимо создать Function Group - функциональную группу для нашей вьюшки, в этой группе будут содержаться необходимые экраны и логика. Воспользуемся транзакцией SE80, запустим ее в новом режиме.
Сохраняем и видим что в навигаторе объектов появилась функциональная группа.
Вернемся к экрану задания параметров для Maintenance dialog и укажем только что созданную функциональную группу.
Нажав Find Scr. Number(s) перейдем на экран.
Получаем заполненный экран и нажимаем Создать.
В строке статуса видно как происходила генерация. По окончании генерации в строке статуса должно появиться сообщение Request completed without errors.
В навигаторе объектов можно увидеть что появилась наша вьюшка.
Также развернув функциональную группу ZKRE_FG1 увидим что там создались необходимые экраны и логика.
Посмотрим что в итоге у нас получилось. Это можно сделать через навигатор объектов SE80 или через транзакцию SM30.
Двойной клик по строке и мы попадаем на такой экран.
Нажав F3 вернемся на предыдущий экран. Нажав кнопку Изменить Ctrl+F1, появляется возможность добавлять новые записи.
Можно посмотреть документацию для нашего поля First Name.
Внесем какие-нибудь данные и нажимаем сохранить. Видно что в полях где мы задавали test подтянулись данные из таблицы Staff.
В следующей статье http://fibed.net/E/ создадим транзакцию.
SteFFun
Все здорово и хорошо, но в идеале было бы еще дано содержимое таблиц для примера. Я делаю все по инструкции, все получается, но даже на скринах я вижу что у автора намного больше данных, объектов и так далее и вот например моя вьюха пустая. Я предполагаю, что это из-за отсутствия данных. Но я только начинаю этим заниматься и хотелось чтобы примеры(хотя бы один) был полностью закончен вплоть до пары записей в таблице. Чтобы тупо повторить их от и до и все было так как описано. То же при создании таблиц, штук пять как минимум доменов и элементов данных пришлось досоздовать в процессе присвоения полям элементов данных. Я не придираюсь, я это к тому что, из-за таких мелочей(где то чего то не хватает) и в последующих уроках уже не выходит сделать по инструкции и вся цепочка курса нарушается.
Любовь
В данном уроке после создания группы функций необходимо её активировать (SE80 -> Клик правой кнопкой мыши по созданной группе функций -> Активировать), в противном случае нельзя будет вызвать операцию Find Scr. Number(s) и идти далее.
P.S. Автору огромное спасибо за потраченные время и силы. Пусть где-то и есть маленькие недочеты, тем не менее работа проделана огромная. Спасибо!
Екатерина
Я создала вьюшку, следуя вашей инструкции. Все получилось отлично. Однако,я заметила,что у меня в поле Discount таблицы ZKRE_ORDER стоит неправильный Data Type. Я изменила его,предварительно изменив и активизировав Domain и Data Element. После этого при вводе вьюшки через SM30 выдается ошибка:STOP. Description does not match target field. Не подскажете как это исправить? куда посмотреть? Я сделала принт скрины для пояснения. Спасибо большое!