COBOL2002 言語 拡張仕様編


11.1.1 通信記述項(CD)(通信節による画面機能)

形式

[図データ]

機能

通信種別などを指定する。

構文規則
  1. 帳票出力用の通信記述項と画面入出力用の通信記述項はおのおのプログラムに1回だけ定義できる。

  2. 通信記述項の各データ名に対して,データ項目が次の形式で暗黙に定義される。また,これらの領域はこのシステムによって自動的に割り当てられる。

    [図データ]

  3. 通信記述名1の構成規則は,利用者定義語の構成規則による。

  4. 通信節は最外側プログラム,利用者定義関数,ファクトリ定義およびインスタンス定義に指定できる。

  5. 画面入出力用の通信記述項には,MAP NAME句を書かなければならない。

一般規則
  1. FOR句は,通信種別を指定する。通信種別と意味を次に示す。

    OUTPUT WS:送信先が,プリンタである。

    I-O WS:送受信先が,ディスプレイである。

  2. MAP NAME句のデータ名1は,出力用物理マップ名を設定する項目である。

  3. MAPPING MODE句のデータ名2は,画面表示の形態を指定する。データ名2に指定する値と画面表示の形態を次に示す。

    '△','0'

    論理項目または制御項目に指定したデータを用いて画面表示をする。ただし,表示属性の変更指示を行わない項目属性については,画面定義時に指定した表示属性となる。

    '2'

    論理項目または制御項目に指定したデータを用いて画面表示をする。ただし,表示属性の変更指示を行わない項目属性については,前画面の表示属性となる。

    '3'

    論理項目または制御項目に指定したデータを無視して画面定義時の情報だけで画面表示をする。

    データ名2に'2'を設定しているとき,表示動作がERASEモードとなる通信文を発行してはならない。この通信文を発行した場合,動作は保証しない。

    MAPPING MODE句を省略した場合,次を仮定する。

    ・初めての送受信要求または直前の指定と異なる物理マップ名の送受信要求のとき,データ名2に'△','0'が指定されたものとして画面表示をする。

    ・同じ物理マップ名を使用した送受信要求のとき,データ名2に'2'が指定されたものとして画面表示をする。ただし,同じ物理マップ名を使用した送受信要求でも,表示動作がERASEモードの場合は,データ名2に,'△','0'を仮定し,画面表示をする。

    MAPPING MODE句は,FOR句でI-O WSを指定しているときだけ有効である。FOR句でOUTPUT WSを指定しているとき,常にデータ名2に'△','0'が指定されたものとして画面表示をする。

    (注意)

    論理項目とは,プリンタまたはディスプレイ間で,可変なデータを送信または送受信するためのデータ項目である。

    制御項目とは,COBOLプログラムとディスプレイまたはプリンタを制御するためのデータ項目である。

  4. DATA ABSENCE CODE句のデータ名3は,データ有無コードを指定する。データ有無コードとは,論理項目に値を設定しているかどうかを区別するためのコードである。データ名3で指定したコードを論理項目の先頭1バイトに設定することで,その論理項目へ値を設定しないことを指示する。

  5. 通信文の実行で異常が発生した場合,STATUS KEY句の指定がないと,次のどちらかの動作になる。

    (a)通信文で実行継続できない異常状態が発生すると,エラーメッセージを出力して終了する。

    (b)通信文で実行継続できる異常状態が発生すると,エラーメッセージを出力して続行する。

  6. 通信文の実行で異常が発生しても処理を続行させたい場合,STATUS KEY句を指定する。データ名4には,通信文の実行状態を表す長さ5文字のコードが設定される。

    5文字のコードと意味を次に示す。

    [図データ]

    STATUS KEY句の指定は,異常状態の発生時,ファイルのクローズなどの後処理をしてからプログラムを終了させたいときに有効である。ただし,STATUS KEY句を指定していても,データ名4の値がすべて空白のとき,STATUS KEY句の指定は無視される。

  7. INITIAL句指定のプログラムでEXIT PROGRAM文またはGOBACK文を実行した場合,この機能で開かれたファイルは閉じられる。

  8. SYMBOLIC TERMINAL句のデータ名5

    (a)FOR句でOUTPUTを指定したときは,メッセージの送信先の仮想端末名称を指定する。仮想端末とは,COBOLプログラムで扱う論理的な端末である。

    (b)FOR句でI-Oを指定したときは,画面データの送受信先を指定する。画面データの送受信先はディスプレイである。

    詳細は,マニュアル「COBOL2002 ユーザーズガイド」またはマニュアル「COBOL2002 使用の手引 手引編」の通信節による画面入出力機能の説明とXMAP3のマニュアルを参照のこと。