Что такое селекционный экран в sap

Вариант селекционного экрана

Варианты селекционного экрана знает каждый. Если не знает, то срочно надо узнать что это. Они сильно облегчают жизнь пользователя и САПера. Особенно для отчетов, а, если еще и к ним ALV вариант настроить, то совсем красиво получается. Так вот, есть еще такие вариант, как системные. Это те, которые просто так не изменить. Помогает сохранить пользователям руки и не отрывать их, когда они что-нибудь перезатирают друг у друга.

Системные варианты начинаются с SAP& для саповских вариантов и CUS& для клиентских. Эти варианты хранятся в 000 манданте и переносятся транспортными запросами.

А еще в вариантах можно делать подстановки:

Что такое селекционный экран в sap. Смотреть фото Что такое селекционный экран в sap. Смотреть картинку Что такое селекционный экран в sap. Картинка про Что такое селекционный экран в sap. Фото Что такое селекционный экран в sap

Настройки варианта селекционного экрана

Если тип ‘D’ D: Dynamic date calculation, то встаем на поле Name of variable и нажимаем F4. Выбираем нужную нам математику. Удобно, когда нужно строить отчеты по четким границам (например, по календарному месяцу). Или запускать программы с фильтами. Фантазируйте! Мечты сбываются 🙂

Для табличных переменных есть волшебная штука — табличка TVARVC. Запускаем транзакцию STVARV, создаем свою переменную и присваиваем значения, которые должны подставиться на селекционнике в варианте. Получается шоколадная штука. Мы создаем системный вариант, в нем указываем переменную для видов оплаты (например, фонд оплаты труда), а в TVARVC прописываем все виды оплаты. И эту переменную используем во всех отчетах. Красота!

Источник

Глава 1. Создание ALV GRID. Часть 2

ABAP OBJECTS ALV

§ 2. Селекционный экран

Необходимо создать следующие объекты:

SELECTION SCREEN 1100

Экран ввода данных.

Вызов селекционного экрана и передача данных с экрана в класс контроллер.

В se80 создаем группу функций ZFG_MVC_001.

Что такое селекционный экран в sap. Смотреть фото Что такое селекционный экран в sap. Смотреть картинку Что такое селекционный экран в sap. Картинка про Что такое селекционный экран в sap. Фото Что такое селекционный экран в sap

Рис. 1

Что такое селекционный экран в sap. Смотреть фото Что такое селекционный экран в sap. Смотреть картинку Что такое селекционный экран в sap. Картинка про Что такое селекционный экран в sap. Фото Что такое селекционный экран в sap

Рис. 2

В TOP инклуде описываем селекционный экран номер 1100.

SELECTION-SCREEN: BEGIN OF SCREEN 1100 TITLE title_01.
SELECT-OPTIONS: s_carrid FOR spfli-carrid.
SELECT-OPTIONS: s_connid FOR spfli-connid.
SELECTION-SCREEN: END OF SCREEN 1100.

Что такое селекционный экран в sap. Смотреть фото Что такое селекционный экран в sap. Смотреть картинку Что такое селекционный экран в sap. Картинка про Что такое селекционный экран в sap. Фото Что такое селекционный экран в sap

Рис. 3

Для того чтобы класс контроллер смог вызвать данный селекционный экран, необходимо создать функциональный модуль (ZFM_MVC_001_SEL_SCR_1100) вызова экрана 1100.

Что такое селекционный экран в sap. Смотреть фото Что такое селекционный экран в sap. Смотреть картинку Что такое селекционный экран в sap. Картинка про Что такое селекционный экран в sap. Фото Что такое селекционный экран в sap

Рис. 4

Данный функциональный модуль будет возвращать в класс контроллер данные

Если хотите прочитать статью полностью и оставить свои комментарии присоединяйтесь к sapland

Источник

Что такое селекционный экран в sap

Что такое селекционный экран в sap. Смотреть фото Что такое селекционный экран в sap. Смотреть картинку Что такое селекционный экран в sap. Картинка про Что такое селекционный экран в sap. Фото Что такое селекционный экран в sap

Часто есть необходимость для ввода только входных данных, для этих целей можно использовать экраны выбора. Экраны выбора предоставляют стандартизированный интерфейс SAP.

Вводим имя программы и нажимаем Создать. Как обычно задаем стандартные атрибуты, сохраняем в пакет ZKRE_PRO1, назначаем транспортный запрос. Итак введем такой текст в наш редактор.

Что такое селекционный экран в sap. Смотреть фото Что такое селекционный экран в sap. Смотреть картинку Что такое селекционный экран в sap. Картинка про Что такое селекционный экран в sap. Фото Что такое селекционный экран в sap

Запускаем на выполнение.

Что такое селекционный экран в sap. Смотреть фото Что такое селекционный экран в sap. Смотреть картинку Что такое селекционный экран в sap. Картинка про Что такое селекционный экран в sap. Фото Что такое селекционный экран в sap

Детальный синтаксис команд можно просмотреть если в редакторе выделить ключевое слово например SELECTION-SCREEN и нажать F1.

Что такое селекционный экран в sap. Смотреть фото Что такое селекционный экран в sap. Смотреть картинку Что такое селекционный экран в sap. Картинка про Что такое селекционный экран в sap. Фото Что такое селекционный экран в sap

В коде программы есть text-001 так называемая текстовая переменная. Пока она еще не создана. Двойной щелчек в тексте программы мышью по text-001 позволит нам создать ее.

Что такое селекционный экран в sap. Смотреть фото Что такое селекционный экран в sap. Смотреть картинку Что такое селекционный экран в sap. Картинка про Что такое селекционный экран в sap. Фото Что такое селекционный экран в sap

Что такое селекционный экран в sap. Смотреть фото Что такое селекционный экран в sap. Смотреть картинку Что такое селекционный экран в sap. Картинка про Что такое селекционный экран в sap. Фото Что такое селекционный экран в sap

Нажав YES, попадаем в следующий экран.

Что такое селекционный экран в sap. Смотреть фото Что такое селекционный экран в sap. Смотреть картинку Что такое селекционный экран в sap. Картинка про Что такое селекционный экран в sap. Фото Что такое селекционный экран в sap

Где мы вводим непосредственно сам текст и устанавливаем длину в 40 символов. Переключившись на вкладку Selections Texts видим что там имеются названия наших элементов на экране выбора.

Что такое селекционный экран в sap. Смотреть фото Что такое селекционный экран в sap. Смотреть картинку Что такое селекционный экран в sap. Картинка про Что такое селекционный экран в sap. Фото Что такое селекционный экран в sap

Здесь можно ввести произвольный текст, а можно отметив галочки справа, тем самым скопировав описание полей автоматом.

Что такое селекционный экран в sap. Смотреть фото Что такое селекционный экран в sap. Смотреть картинку Что такое селекционный экран в sap. Картинка про Что такое селекционный экран в sap. Фото Что такое селекционный экран в sap

Сохраняем и активируем. Запуств на выполнение программу увидим как изменился экран.

Что такое селекционный экран в sap. Смотреть фото Что такое селекционный экран в sap. Смотреть картинку Что такое селекционный экран в sap. Картинка про Что такое селекционный экран в sap. Фото Что такое селекционный экран в sap

Отредактируем текст программы, сделаем поле Name обязательным и добавим кнопку.

Что такое селекционный экран в sap. Смотреть фото Что такое селекционный экран в sap. Смотреть картинку Что такое селекционный экран в sap. Картинка про Что такое селекционный экран в sap. Фото Что такое селекционный экран в sap

Двойной клик по textbt1 – создадим надпись на кнопке.

Что такое селекционный экран в sap. Смотреть фото Что такое селекционный экран в sap. Смотреть картинку Что такое селекционный экран в sap. Картинка про Что такое селекционный экран в sap. Фото Что такое селекционный экран в sap

Что такое селекционный экран в sap. Смотреть фото Что такое селекционный экран в sap. Смотреть картинку Что такое селекционный экран в sap. Картинка про Что такое селекционный экран в sap. Фото Что такое селекционный экран в sap

Сохраняем и активируем нашу новую текстовую переменную. Теперь на кнопке имеется надпись.

Что такое селекционный экран в sap. Смотреть фото Что такое селекционный экран в sap. Смотреть картинку Что такое селекционный экран в sap. Картинка про Что такое селекционный экран в sap. Фото Что такое селекционный экран в sap

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

Обсуждения : 4 комментария

Комментарии

Виталий

Ошибка в программе.

Ругается на функционал кнопки

Ошибка:
Неизвестное поле «SSCRFIELDS-UCOMM». Оно не содержится ни в одной из указанных таблиц, не определено через оператор «DATA»

Виталий

Пересохранился. Заработало. СТранно(

Дмитрий

Добрый день. У меня была такая же проблема:
после REPORT не хватает
TABLES: sscrfields.

Чтобы оставить комментарий, необходимо Войти или Зарегистрироваться.

Источник

Глава 2. Два ALV GRID на одном экране. Часть 2

ABAP OBJECTS ALV

§2. Селекционный экран

Необходимо создать следующие объекты:

SELECTION SCREEN 1100

Экран ввода данных.

Вызов селекционного экрана и передача данных с экрана в класс контроллер.

Создаем функциональный модуль вызова селекционного экрана аналогично пункту 1.1.2.

Что такое селекционный экран в sap. Смотреть фото Что такое селекционный экран в sap. Смотреть картинку Что такое селекционный экран в sap. Картинка про Что такое селекционный экран в sap. Фото Что такое селекционный экран в sap

Рис. 1

CALL SELECTION-SCREEN 1100.

IF sy-subrc = 0.
e_repid = sy-repid.
PERFORM set_context CHANGING es_context.
ELSE.
RAISE exit_program.
ENDIF.
ENDFUNCTION.

Тестируем функциональный модуль.

Что такое селекционный экран в sap. Смотреть фото Что такое селекционный экран в sap. Смотреть картинку Что такое селекционный экран в sap. Картинка про Что такое селекционный экран в sap. Фото Что такое селекционный экран в sap

Рис. 2

§3. Класс модель

Необходимо создать следующие объекты:

Создаем класс выбора данных ZCL_MVC_002_MODEL. Транзакция SE24.

Что такое селекционный экран в sap. Смотреть фото Что такое селекционный экран в sap. Смотреть картинку Что такое селекционный экран в sap. Картинка про Что такое селекционный экран в sap. Фото Что такое селекционный экран в sap

Рис. 3

Что такое селекционный экран в sap. Смотреть фото Что такое селекционный экран в sap. Смотреть картинку Что такое селекционный экран в sap. Картинка про Что такое селекционный экран в sap. Фото Что такое селекционный экран в sap

Рис. 4

Что такое селекционный экран в sap. Смотреть фото Что такое селекционный экран в sap. Смотреть картинку Что такое селекционный экран в sap. Картинка про Что такое селекционный экран в sap. Фото Что такое селекционный экран в sap

Если хотите прочитать статью полностью и оставить свои комментарии присоединяйтесь к sapland

Источник

Иван Болховитинов

Если транзакция является отчётом, то у неё есть экран выбора.

И если параметров много, и вы часто заполняете их одинаково, то имеет смысл запомнить это в виде шаблона. Вот этот шаблон и называется вариантом.

А теперь – в подробностях…

Что это такое?

Экраном выбора (селекционным экраном) является экран, сформированный операторами PARAMETERS, SELECT-OPTIONS с вариациями. Он всегда имеет номер 1000. Такой экран может сгенерирован только автоматически и только для программы типа REPORT. Вносить вручную изменения в такой экран – запрещается.

Если соотносить с вариантами транзакций (SHD0), то тут полное разделение:

Функции вариантов экрана выбора и вариантов транзакций реализованы похоже (похоже, но не то же).

Над экраном выбора всегда горит стандартная кнопка сохранения, и если её нажать, то появится экран сохранения:

Что такое селекционный экран в sap. Смотреть фото Что такое селекционный экран в sap. Смотреть картинку Что такое селекционный экран в sap. Картинка про Что такое селекционный экран в sap. Фото Что такое селекционный экран в sap

Вот тут можно порасставлять галочки и сохранить под нужным именем.

В-целом очень похоже на варианты транзакций, вот только значения “по-умолчанию” напрямую не показываются и напрямую не вписываются. Не очень приятное поведение.

Если к программе создан хотя бы один вариант, то появляется кнопочка, нажав которую можно выбрать варианты из списка:

Что такое селекционный экран в sap. Смотреть фото Что такое селекционный экран в sap. Смотреть картинку Что такое селекционный экран в sap. Картинка про Что такое селекционный экран в sap. Фото Что такое селекционный экран в sap

NB: Мне вообще не нравится принятое название “селекционный экран” или “селективный экран”. В английском всё просто “Selection screen”. Официально он называется всё-таки “экран выбора”, в этом можно убедиться в транзакции SE93.

Переносы

Варианты экрана выбора делятся на два вида:

Маркер CUS& нужно вводить ручками. Что-то вроде этого можно найти и в вариантах ALV, но там используется другой маркер-префикс: это прямой слеш, да и означает этот маркер чуть другое.

Если пользовательский вариант хочется перенести, то можно воспользоваться программой RSTRANSP. Можно включить и ручками, но там нужно будет склеить правильно имя объекта.

Если говорить о систематическом подходе, то лучше всегда придерживаться стандартной логики:

А то, например, может сложиться не очень приятная ситуация, если решат перенести корректировку варианта через запрос из разработки, и окажется что на продуктивной системе в варианте были сделаны локальные корректировки.

Использование

Пока пользователь у нас может только запустить отчёт, и потом выбрать из списка нужный. Можно сократить этот шаг:

Защита

С защитой всё не очень приятно. По сути это завязка на имя пользователя – вот насколько всё просто. Снять защиту с пользовательского варианта легко с помощью программы RSVARENT, тут лезть в таблицы не обязательно.

А вот снять защиту с системного варианта непросто. Даже если зайти под владельцем, то снимать флаг защиты бесполезно – он при сохранении будет поставлен обратно. Получается что нельзя сменить владельца системного отчёта.

Ситуацию усложняет тот факт, что системные варианты хранятся в 000 манданте (и как следствие они являются независимыми от манданта). А лично меня не тянет идти ради этого в нулевой мандант. Поэтому даже снять флаг защиты с полпинка не получится. Ну а таблица не секретная: VARID; надо только написать вручную запрос учитывая мандант.

Снимаете защиту, и при следующем сохранении он защитится обратно, но уже на вас.

На закуску

Можно поглядеть на кучку программ RSVAR* – там есть небольшие помогалки на разные случаи.

Если что и стоит разведать дополнительно, то это механизм использования переменных.

С датой всё просто: если поле является датой, то там появляются дополнительные вкусняшки:

Что такое селекционный экран в sap. Смотреть фото Что такое селекционный экран в sap. Смотреть картинку Что такое селекционный экран в sap. Картинка про Что такое селекционный экран в sap. Фото Что такое селекционный экран в sap

А вот если вам нужна какая-то условная константа с динамическим расчётом (например, код БЕ из профиля пользователя), то необходимо сделать какие-то дополнительные шаги. Вот это стоило бы копнуть дополнительно.

Может кто даст наводку?

Планирование

Есть стандартная функция платформы: можно запланировать регулярный запуск отчёта (например: ежедневно).

Если ввести параметры на экране выбора и запланировать запуск в фоновом режиме, то будет создан технический вариант вроде &0000000000012. В данном случае не играет роли, если вы перед этим вызвали какой-либо вариант для предварительного заполнения этих полей.

Поэтому если у вас есть динамические переменные выбора в варианте, то планировать следует из SM36 (где можно напрямую указать вариант), а не из SA38.

11 комментариев

Варианты настройки зависят от прикладного компонента (в СО, к примеру, они свои) и в этих компонентах есть свои настройки “по-умолчанию”. Общего для разных модулей при настройке вариантов мало, нужно конкретную ситуацию смотреть.

Само собой, обсуждение вариантов тут не затрагивает те вещи, которые пишутся напрямую в тексте ABAP-программы. И в каждой программе готовы появиться какие-то свои “феньки” в экранах выбора.

Вот например, у меня есть стандартный трюк: если данный пользователь имеет права только на одну БЕ, то эту БЕ я прописываю на экране выбора и закрываю ввод. А это делается старым добрым ABAP-ом, без всяких вариантов.

Небольшое замечание не по сути статьи. Утверждение
“Технически экраном выбора (селекционным экраном) является экран, сформированный операторами PARAMETERS, SELECT-OPTIONS. Он всегда имеет номер 1000. Такой экран может сформирован только для программы типа REPORT.” является не полностью корректным. Selection-screen может иметь и другой номер. Их может быть > 1. Никто не мешает создать его, например, в группе функций и затем вызвать через CALL SELECTION-SCREEN XXXX. А вот СТАНДАРТНЫЙ selection screen действительно имеет фиксированный номер 1000 и может быть только в программах типа REPORT.

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

> Никто не мешает создать его
Спорно. Я бы стал мешать разработчику так делать 😉

Технически спорные формулировки тут ещё есть. Например:
>Если транзакция является отчётом, то у неё есть экран выбора.
Отчёт можно сделать и без экрана выбора. Но вот нормальные отчёты так никто не делает.

>> Никто не мешает создать его
>Спорно. Я бы стал мешать разработчику так делать
Я лично не вижу причин запрещать, поскольку адекватное применение этому имеется. Например, экраны выбора применяются в стандартной группе функций V56L.

Спасибо Иван за статью. Даже не представишь как ты мне помог)

Огромное спасибо за статью, Иван. Если впервые с этим сталкиваешься, как я, то информация очень полезная.

А вот если вам нужна какая-то условная константа с динамическим расчётом (например, код БЕ из профиля пользователя), то необходимо сделать какие-то дополнительные шаги. Вот это стоило бы копнуть дополнительно.

транзакция STVARV.
Но не думаю, что выйдет связать с профилем пользователя.

Выйдет конечно, но только если поле экрана выбора связано с MEMORY ID в ABAP:
PARAMETERS: p_bukrs TYPE bkpf-bukrs MEMORY ID buk.

Просто оно обладает недостатками:
а) не всегда будет работать для стандарта, где иногда может не быть связки поля с MEMORY ID
б) если пользователь в сессии заранее перебивал поле другими значениями, тогда будут подставлены последние, а не значения из профиля

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *