我是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字段。
答案 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.
希望它有所帮助。
塔尔哈