在ABAP中调用复合子例程吗?

时间:2018-07-12 08:41:46

标签: function sap abap

是否可以调用同时具有USING和CHANGING参数的子例程的多个实例?像这样:

PERFORM FM_CHECK_INPUT:
   USING INPUT_A  FIELD_B
CHANGING MESSAGE_A,
   USING INPUT_B  FIELD_B
CHANGING MESSAGE_B,
...
   USING INPUT_E  FIELD_E
CHANGING MESSAGE_E.

还是我必须分别调用每个实例?

PERFORM FM_CHECK_INPUT USING INPUT_A
                             FIELD_A
                    CHANGING MESSAGE_A.
PERFORM FM_CHECK_INPUT USING INPUT_B
                             FIELD_B
                    CHANGING MESSAGE_B.
...
PERFORM FM_CHECK_INPUT USING INPUT_E
                             FIELD_E
                    CHANGING MESSAGE_E.

我以前在子例程中使用过复合语句,但仅在子例程仅具有USING或CHANGING语句时才使用,并且我不确定在同时使用USING和CHANGING参数时是否可以执行相同的操作。

1 个答案:

答案 0 :(得分:2)

一般来说,chained statements(即使用:,)用于重复:左侧的单词,并可以处理任何单词序列之前和之后,并且不特定于任何语句(它可以用于DATA,PERFORM,CALL,TRANSLATE和所有其他语句)。

例如以下语句:

AAA BBB : CCC DDD, EEE, FFF GGG.

等同于以下3条语句:

AAA BBB CCC DDD.
AAA BBB EEE.
AAA BBB FFF GGG.

(当然,如果您编译此虚拟示例,则由于AAA未知而导致编译失败,因此请使用真实语句)