TERMINATE

TERMINATE [operand1 [operand2]]

このドキュメントでは、次のトピックについて説明します。

構文図で使用されている記号については、「構文記号」を参照してください。


関数

TERMINATE ステートメントは、Natural セッションを終了するために使用します。TERMINATE ステートメントは、Natural プログラム内の任意の位置に指定できます。TERMINATE ステートメントが実行されると、ページ終了処理やループ終了処理は行われません。

Natural RPC の場合:Natural リモートプロシージャコール(RPC)』ドキュメントの「サーバーに対する Natural ステートメントの注意事項」を参照してください。

構文説明

オペランド定義テーブル:

オペランド 構文要素 フォーマット オペランド参照 ダイナミック定義
operand1 C S         N P  I                 ×
operand2 C S A     A  U                    

構文要素の説明:

構文要素 説明
operand1

operand1 を使用して、Natural 終了時に制御を受け取るプログラムにリターンコードを渡します。例えば、リターンコード設定は、出口コードとしてシェルに渡すことができます。

オペレーション』ドキュメントの「Natural スタートアップエラー」も参照してください。

operand1 に指定できる値の範囲は 0 - 255 です。

operand2 operand2 を使用して、終了後に制御を受け取るプログラムに追加情報を渡すことができます。

Natural 終了後に制御を受け取るプログラム

Natural セッションの終了後、プロファイルパラメータ PROGRAM で指定された名前のプログラムに制御が渡ります。

Natural は、そのプログラムに operand2 とプロファイルパラメータ PRGPAR の値を渡します(これらが指定されている場合)。プログラムはこれらのパラメータを通常の方法で引数として受け取ります。

int main(int argc, char *argv[])
{
  /* Number of arguments passed. */
  printf("Number of arguments: %d\n", argc);
  /* Program name. */
  if ( argc > 0 )
    printf("Program: %s\n", argv[0]);
  /* Value of operand2 of the TERMINATE statement. */
  if ( argc > 1 )
    printf("Operand 2: %s\n", argv[1]);
  /* Value of the profile parameter PRGPAR. */
  if ( argc > 2 )
    printf("PRGPAR: %s\n", argv[2]);
  return 0;
}

PROGRAM パラメータが設定されていない場合、終了後、UNIX コマンドシェルが制御を受け取ります。

** Example 'TEREX1': TERMINATE                                          
************************************************************************
DEFINE DATA LOCAL                                                       
1 EMPLOY-VIEW VIEW OF EMPLOYEES                                         
  2 PERSONNEL-ID                                                        
  2 NAME                                                                
  2 SALARY (1)                                                          
*                                                                       
1 #PNUM     (A8)                                                        
1 #PASSWORD (A8)                                                        
END-DEFINE                                                              
*                                                                       
INPUT 'ENTER PASSWORD:' #PASSWORD                                       
*                                                                       
IF #PASSWORD NE 'USERPASS'                                              
  /*                                                                    
  TERMINATE                                                          
  /*                                                                    
END-IF                                                                  
*                                          
INPUT 'ENTER PERSONNEL NUMBER:' #PNUM      
*                                          
FIND EMPLOY-VIEW WITH PERSONNEL-ID = #PNUM 
  DISPLAY NAME SALARY (1)                  
END-FIND                                   
*                                          
END