表单和执行中的参数数量不同 [英] Different number of parameters in FORM and PERFORM

查看:8
本文介绍了表单和执行中的参数数量不同的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我希望避免在函数中复制+粘贴,并希望创建子例程。

但此操作失败。

下面是函数(我去掉了不重要的部分):

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.

我收到此错误消息:

表格和执行中的参数数量不同(例程: 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"和"RSPARAMS"被解释为单独的CHANGING参数。 您必须直接使用表格类型输入参数(就像您对USING参数所做的那样)。在这种情况下,它可以是:

CHANGING sel_table TYPE RSPARAMS_TT.

RSPARAMS_TT是RSPARAMS的表类型(您可以签入SE11)

这篇关于表单和执行中的参数数量不同的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆