Abap 如何将多个参数传递给子例程?

Abap 如何将多个参数传递给子例程?,abap,subroutine,Abap,Subroutine,我试图将多个参数传递给子例程,但出现以下错误: 嵌套错误:在语句“FORM”之前,“FORM”引入的结构必须以“ENDFORM”结尾 这是我的密码: CASE p_choose. WHEN 'UMK'. PERFORM umk USING: p_modul, p_e_pal, p_vbeln, p_e_umk. "some other cases

我试图将多个
参数
传递给子例程,但出现以下错误:

嵌套错误:在语句“FORM”之前,“FORM”引入的结构必须以“ENDFORM”结尾

这是我的密码:

CASE p_choose.
  WHEN 'UMK'.
    PERFORM umk USING: p_modul,
                       p_e_pal,
                       p_vbeln,
                       p_e_umk.
"some other cases
ENDCASE.

FORM umk USING: p_modul,
                p_e_pal,
                p_vbeln,
                p_e_umk.
ENDFORM.

我的错在哪里?如何传递多个参数?还是根本不可能?谢谢

我自己已经找到了解决办法。 错误是每个参数后面的“,”

正确的代码是:

CASE p_choose.
  WHEN 'UMK'.
    PERFORM umk USING p_modul
                      p_e_pal
                      p_vbeln
                      p_e_umk.
"some other cases
ENDCASE.

FORM umk USING p_modul
               p_e_pal
               p_vbeln
               p_e_umk.
ENDFORM.

为了完成您自己的答案,即正确的解决方案,让我通过显示没有链接语句的等效代码来解释错误的原因,该错误是由于对如何工作的误解造成的

您的旧代码和链式语句(符号
):

与此代码完全等效,无链接语句:

FORM umk USING p_modul.
FORM umk USING p_e_pal.
FORM umk USING p_vbeln.
FORM umk USING p_e_umk.
ENDFORM.

因此出现了明显的语法错误。

这并不能回答您的问题,但在编写新代码时,我建议使用(静态)方法或至少使用功能模块。表单调试起来很痛苦。我会记住的,谢谢!有关更多信息,请参阅。
FORM umk USING p_modul.
FORM umk USING p_e_pal.
FORM umk USING p_vbeln.
FORM umk USING p_e_umk.
ENDFORM.