2

我有一个程序列表,它们的选择屏幕变体我想检查 type 参数的硬编码值BUKRS

功能模块RS_VARIANT_CONTENTS几乎完成了所有工作,对于给定的变体和程序,它返回填充在该变体中的值的列表。

不幸的是,它不返回这些参数的类型,只返回它们的值。因此,我认为我需要额外检查,即屏幕中定义的参数类型。

现在我意识到关键字PARAMETERS在当前程序中同时定义了屏幕字段和数据对象,其中任何一个的类型都会有很大帮助(显然是相同的)。这当然是在幸福的情况下,我什PARAMETERS至定义了一个数据对象,而不是一个SELECT-OPTIONS.

我还遇到了功能模块DYNPRO_FIELD_GET,它为我提供了选择屏幕中定义的屏幕字段,但同样,对类型没有帮助......所以是的,任何帮助将不胜感激。

我什至找到了一个名为 FuBa GET_DICTIONARY_FIELDS,它承诺给我我想要的东西:一个程序中所有变量的列表,然后我可以用给出的列表来证实它RS_VARIANT_CONTENTS以获得我想要的信息 - 不幸的是在我的版本中系统,它处于非活动状态。

[编辑]

需要注意的是,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'.

4

2 回答 2

2

您可以尝试使用功能模块RS_SELSCREEN_INFO。给定报告名称,它将返回参数列表并选择选项以及 DDIC 参考信息(如果已设置)。

于 2013-08-08T16:49:55.520 回答
0

Althouth vwegert 的回答实际上做到了完整的技巧,我还发现了 2 个很有帮助的功能模块。

这些是GET_GLOBAL_SYMBOLS - 这将返回程序的全局变量。它适用于定义的变量DATAPARAMETERS但它不能适用于SELECT-OPTIONS.

另一个是GET_COMPONENT_LIST - 这可用于获取用 . 声明的变量的基本数据类型SELECT-OPTIONS

于 2013-08-09T08:17:40.643 回答