0

我是 ABAP 的新手,我尝试在 ABAP 中学习功能模块。我创建了一个函数并为其提供了 IMPORT 和 EXPORT,TABLES 的参数,我还想在用户制作我不想要的东西时给他一个例外。

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

i_x TYPE xx
i_type TYPE char2

我有 1 个表参数,即:

et_xx_sorted LIKE xx 'this is an exception'

我有 1 个例外行:

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 字段中确定。

4

1 回答 1

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.

希望它有帮助。

塔尔哈

于 2012-06-20T13:57:22.270 回答