コンテンツフレーム起動

サブルーチンの終了 文書を SAP ライブラリストラクチャに組み込む

サブルーチンは通常、ENDFORM 命令で終了します。ただし、EXIT 命令または CHECK 命令を使って早く終了することができます。EXIT または CHECK を使ってサブルーチンを終了すると、出力パラメータの現在の値 ( 値によって渡された CHANGING パラメータ) は対応する実パラメータに戻されます。

サブルーチンを無条件に終了させるには、EXIT を使用します。呼出元プログラムは、PERFORM 命令の後の命令でコントロールを取り戻します。

 例

PROGRAM FORM_TEST.

PERFORM TERMINATE.

WRITE  'The End'.

FORM TERMINATE.
   WRITE '1'.
   WRITE '2'.
   WRITE '3'.
   EXIT.
   WRITE '4'.
ENDFORM.

出力は以下のようになります。

1 2 3 The End

この例では、3 番めのWRITE 命令の後にサブルーチン TERMINATE が終了されます。

条件に従ってサブルーチンを終了させるには、CHECK を使用します。CHECK 命令の論理式が正しくない場合は、サブルーチンは終了され、呼出元プログラムは PERFORM 命令後にプロセスを再開します。

 例

PROGRAM FORM_TEST.

DATA: NUM1 TYPE I,
      NUM2 TYPE I,
      RES  TYPE P DECIMALS 2.

NUM1 = 3. NUM2 = 4.
PERFORM DIVIDE USING NUM1 NUM2 CHANGING RES.

NUM1 = 5. NUM2 = 0.
PERFORM DIVIDE USING NUM1 NUM2 CHANGING RES.

NUM1 = 2. NUM2 = 3.
PERFORM DIVIDE USING NUM1 NUM2 CHANGING RES.

FORM DIVIDE USING N1 N2 CHANGING R.
   CHECK N2 NE 0.
   R = N1 / N2.

   WRITE: / N1, '/', N2, '=', R.
ENDFORM.

出力は以下のようになります。

         3 /          4 =           0.75

         2 /          3 =           0.67

この例では、N2 の値がゼロのため、CHECK 命令後の 2 番めの呼出中、サブルーチン DIVIDE は放置されます。

サブルーチンのループ内で EXIT 命令または CHECK 命令を使用すると、これらはサブルーチンではなくループに適用されます。EXIT CHECK は異なる方法でループを終了させますが ( ループを参照) 、サブルーチンの終了時には同じように動作します。

 

 

 

 

 

 

コンテンツフレーム終了