SEND - 運用コマンドの実行

名称

運用コマンドの実行

形式

DATA DIVISION(通信記述項)の指定

CD  通信記述名
   FOR {OUTPUT|I-O} COMMAND
 〔STATUS  KEY  IS データ名1〕.

01 一意名1.
  02 データ名2  PIC  9(4) COMP.
  02 データ名3  PIC  X(2) VALUE LOW-VALUE.
  02 データ名4  PIC  X(n).
01 一意名2.
  02 データ名5  PIC  9(4) COMP.
  02 データ名6  PIC  X(2) VALUE LOW-VALUE.
  02 データ名7  PIC  X(n).

PROCEDURE DIVISION(通信文)の指定

SEND 通信記述名 FROM 一意名1
  〔BEFORE  RECEIVING  MESSAGE  INTO 一意名2〕.

機能

次に示すCALLインタフェースの機能を実現します。

DMLでコマンドを実行する場合,CALLインタフェースでコマンドを実行するときと,次の点が異なります。

通信記述項に設定する項目

FOR句

次のどちらかを指定します。

OUTPUT COMMAND
コマンドの標準エラー出力を受け取らない場合に指定します。この値を指定した場合は,標準エラー出力の受け取り領域の長さには0が仮定されます。
I-O COMMAND
コマンドの標準エラー出力を受け取る場合に指定します。

STATUS KEY句

ステータスコードを受け取りたいときに指定します。この指定を省略した場合は,ステータスコードを受け取れません。

通信文に指定する項目

一意名1

この文で実行するコマンドを設定する領域です。コマンドの文字列を設定する形式を次に示します。

[図データ]

BEFORE句

コマンドを実行した結果,標準エラー出力に出力した文字列を受け取る場合に指定します。このBEFORE句は,FOR句でI-O COMMANDを指定している場合に指定します。

一意名2
標準エラー出力の文字列を格納するデータ項目。格納できる文字列の最大値は(一意名2の領域長)-4です。この値を超える部分は切り捨てます。

受け取る文字列(一意名2)の形式を次に示します。

[図データ]

ステータスコード

ステータスコード意味
00000シェルの終了コードは0(コマンドの実行が正常終了)です。FOR句にI-O COMMANDを指定している場合は,標準エラー出力の文字列を格納しました。
01801シェルの終了コードは0以外(コマンドの実行が異常終了)です。FOR句にI-O COMMANDを指定している場合は,標準エラー出力の文字列を格納しました。
01802データ名に設定した値が間違っています。一意名1,一意名2に設定した領域長の指定や,0と設定する必要がある個所などに誤りがないか確認してください。
01803標準出力への出力がありました(コマンドを実行するSEND文では,標準出力の文字列は受け取れません)。
01804標準エラー出力のデータが,領域に入り切りませんでした。
01805標準出力への出力があり(コマンドを実行するSEND文では,標準出力の文字列は受け取れません),かつ標準エラー出力のデータが,領域に入り切りませんでした。
01806システムコール(close,pipe,dup,またはread)に失敗しました。
01807CBLDCRPC('OPEN ')を呼び出していません。
01808メモリが不足しました。