我希望在函数中避免复制+粘贴,并希望创建一个子例程。
但这失败了。
以下是功能(我删除了不重要的部分(:
FUNCTION /foo/bar .
*"----------------------------------------------------------------------
*" IMPORTING
*" VALUE(IV_STATIC_PARAMETER_LIST) TYPE WDY_KEY_VALUE_LIST
*"----------------------------------------------------------------------
data selection_table TYPE TABLE OF RSPARAMS.
PERFORM GET_REPORT_READ_PARAMETER
USING IV_DYNAMIC_PARAMETER_LIST
CHANGING selection_table.
我收到这个错误消息:
FORM和PERFORM中不同数量的参数(例程:GET_REPORT_READ_PARAMETER,形式参数个数:4,个实际参数:2(
子程序如下所示:
FORM GET_REPORT_READ_PARAMETER
USING parameter_list TYPE WDY_KEY_VALUE_LIST
CHANGING sel_table TYPE TABLE OF RSPARAMS.
....
ENDFORM
知道ABAP为什么认为有4个参数而不是2个参数吗?
错误在这一行:
CHANGING sel_table TYPE TABLE OF RSPARAMS
通过键入参数,上述语法无效,"OF
"one_answers"RSPARAMS
"被解释为单独的CHANGING
参数。您必须使用表类型直接键入参数(就像对USING
参数所做的那样(。在这种情况下,它可以是:
CHANGING sel_table TYPE RSPARAMS_TT.
RSPARAMS_TT是RSPARAM的表格类型(您可以在SE11中查看(