2013-08-08 1 views
2

У меня есть список программ, варианты выбора которых я хотел бы проверить на жестко заданные значения параметров типа BUKRS.Возможно ли запрограммировать опросы полей экрана (экрана выбора) данной программы, чтобы получить их типы?

Функциональный модуль RS_VARIANT_CONTENTS выполняет почти все задания, в том, что для данного варианта и программы он возвращает список значений, заполненных этим вариантом.

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

Теперь я понимаю, что ключевое слово PARAMETERS определяет как поле экрана, так и объект данных в текущей программе, тип любого из них будет иметь большую помощь (очевидно, то же самое). Это, конечно, в счастливом случае, когда у меня даже есть объект данных PARAMETERS, а не SELECT-OPTIONS.

Я также столкнулся с функциональным модулем DYNPRO_FIELD_GET, который дает мне поля экрана, как определено на экране выбора, но опять же, никакой помощи с типами .... Так что, любая помощь будет оценена.

Я даже нашел Fuba называется GET_DICTIONARY_FIELDS, который обещал дать мне то, что я хотел: список всех переменных в программе, которую я мог бы подтвердить со списком заданной RS_VARIANT_CONTENTS, чтобы получить информацию, которую я хотел - к сожалению, в версии моей системы она неактивна.

[EDIT]

Следует отметить, что RS_SELSCREEN_INFO возвращает типы объектов данных, как это определено в программе с соответствующими заявлениями. Например, для:

DATA gv_asdfg TYPE mara-matnr. 

оно возвращает MARA-MATNR. Конечно, имя поля таблицы не является указанием имени элемента данных, поэтому:

Чтобы получить домен для этих типов, можно использовать CL_ABAP_DATADESCR=>DESCRIBE_BY_NAME() и предоставить типы, указанные RS_SELSCREEN_INFO. Для результирующего объекта необходимо искать свойство ->ABSOLUTE_NAME. В моем случае это условие ...->ABSOLUTE_NAME = '\TYPE=BUKRS'.

ответ

2

Вы можете попытаться использовать функциональный модуль RS_SELSCREEN_INFO. Если указано имя отчета, оно будет возвращать список параметров и выбирать параметры вместе с справочной информацией DDIC, если они установлены.

0

Ответ Althouth vwegert на самом деле сделал полный трюк, я также нашел 2 функциональных модуля, которые очень помогают.

Это GET_GLOBAL_SYMBOLS - это возвращает глобальные переменные программы. Он работает для переменных, определяемых DATA и PARAMETERS, но он не работает для SELECT-OPTIONS.

Другой - GET_COMPONENT_LIST - это может быть использовано для получения элементарных типов данных переменных, объявленных с помощью SELECT-OPTIONS.