在功能模块中使用异常

时间:2012-06-20 12:30:48

标签: exception abap function-module

我是ABAP的新手,我尝试在ABAP中学习功能模块。我创建了一个函数并为IMPORT和EXPORT赋予它参数,TABLES我也希望在他/她做出我不想要的东西时给用户一个例外。

所以,我有两个导入参数:这些行是导入和导出字段的列项。

i_x TYPE xx
i_type TYPE char2

我有1个表参数:

et_xx_sorted LIKE xx 'this is an exception'

我有一个例外行:

MAX_RECORD 'There is no record for this.'

我的源代码是:

 SELECT * INTO TABLE et_xx_sorted[] FROM xx WHERE yy = i_x.

当用户向i_x输入的输入最大于我选择的边框时,我想使用我的异常行。我的意思是有1到30的数字,但我希望那个用户只能给1到20.他/她不能给20到30.如果输入到20到30,程序需要给出MAX_RECORD异常并说对用户'没有记录。'

我用过:

IF sy-subrc <> 0.
    MESSAGE 'No record' TYPE 'E' RAISING MAX_RECORD.
  ENDIF.

但这不是我想要的。有一个20-30行,所以这个代码块不适用于我的边框项目。有1到30行,但用户只能看到1到20.如果他/她给出20到30,那么程序应该给出一个例外,使用我确定的EXCEPTIONS字段。

1 个答案:

答案 0 :(得分:2)

我从你的说法中理解我认为你可以通过这样的方式来管理它;

IF i_x LT 20.  "less than

   SELECT * INTO TABLE et_xx_sorted[] FROM xx WHERE yy = i_x.

ELSEIF i_x GT 20.  "greater than

   MESSAGE 'No record' TYPE 'E' RAISING MAX_RECORD.

ENDIF.

希望它有所帮助。

塔尔哈