如何将多个参数传递给子例程?
How do I pass multiple parameters to a subroutine?
我试图将多个 parameters
传递给子例程,但出现以下错误:
Incorrect nesting: before the statement "FORM", the structure introduced by "FORM" must be concluded with "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.
为了完成您自己的正确解决方案,让我通过显示没有链接语句的等效代码来解释错误的原因,这是由于对 chained statements 的工作方式的误解。
带有链式语句(符号 :
和 ,
)的旧代码:
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.
因此出现明显的语法错误。
我试图将多个 parameters
传递给子例程,但出现以下错误:
Incorrect nesting: before the statement "FORM", the structure introduced by "FORM" must be concluded with "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.
为了完成您自己的正确解决方案,让我通过显示没有链接语句的等效代码来解释错误的原因,这是由于对 chained statements 的工作方式的误解。
带有链式语句(符号 :
和 ,
)的旧代码:
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.
因此出现明显的语法错误。