Ну сначала давайте посмотрим на то как это делает сам SAP, а он это делает очень просто, без всяких селекционных экранов, для примера есть стандартная транзакции по работе с классификацией: CL30N - Поиск объекта в классах. Первый экран это ввод имени и типа класса, а далее переходим на второй экран, где признаки класса у нас перечисляются в виде таблицы, рисунок CL30N.png, т.е. ни о какой селекционный экран, никто даже и не пытается строить динамически. В общем я сильно советую задуматься почему даже гнездо этого решило не делать и таки не делать.
Если вам все таки хочется быть первопроходцем в этом не легком деле, не вопрос, можете попробовать:
Вначале признаки не известны, через класс и вид класса их нужно селектировать.
Значит для первого шага уже нужен экран.
1. На экране 1000 программы типа REPORT запрашиваете имя и тип класса по аналогии с транзакцией CL30N.
2. В основной программе есть include в котором описываете селеционный экран используя команду: SELECTION-SCREEN BEGIN OF SCREEN 0101 AS WINDOW.
3. После ввода имени класса у вас есть кнопка на экране по нажатию на которую, читаете признаки класса, формируете текст этого инклуда с перечислением поле = признак класса, генерируете этот инклуд и далее вызываете уже этот экран. Получите свой селекционный экран в диалоговом окне.
4. Пользователь заполняет значения нажимает ОК, программа возвращается на основной экран, где рисуете кнопку типа с иконкой, что есть подробные данные признаков и дальше уже выполняете программу.
PS: Но работать динамически с этими сгенерированными признаками, честно скажу устанете.