RECEIVEメッセージの受信(データ操作言語)

形式

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

CD 通信記述名
  FOR INPUT
 〔STATUS KEY IS データ名1〕
 〔SYMBOLIC TERMINAL IS データ名2〕
 〔MESSAGE DATE IS データ名3〕
 〔MESSAGE TIME IS データ名4〕.

PROCEDURE DIVISION(通信文)の指定

RECEIVE 通信記述名
  〔FIRSTSEGMENT
     INTO  一意名1.

機能

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

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

●FOR句

INPUTを指定します。

●STATUS KEY句

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

●SYMBOLIC TERMINAL句

入力元の論理端末名称を参照するデータ項目を指定します。

●MESSAGE DATE句

メッセージを受信した日付を参照するデータ項目を指定します。YYMMDD(YY:西暦の下2けた MM:月 DD:日)の形式で参照できます。

●MESSAGE TIME句

メッセージを受信した時刻を参照するデータ項目を指定します。HHMMSS00(HH:時 MM:分 SS:秒 00は固定)の形式で参照できます。

通信文に指定する項目

●FIRST

先頭セグメントを受信するときに指定します。

●一意名1

セグメントを受信するデータ項目を指定します。相手システムから送信されるセグメントの最大長については,5章の「mcftalccn(コネクション定義の開始)」の注意事項を参照してください。一意名1の形式を次に示します。

[図データ]

ステータスコード

ステータスコード意味
00000正常に終了しました。
71000先頭セグメントを受信するRECEIVE文を,2回以上実行しています。中間セグメントまたは最終セグメントを受信する場合は,FIRSTを指定しないでRECEIVE文を実行してください。
71001最終セグメントを受信したあとで,その次のセグメントを受信するRECEIVE文を実行しています。直前に実行したRECEIVE文でそのメッセージはすべて受信しました。
このステータスコードが返されたあとに,再び次のメッセージを受信するRECEIVE文を実行した場合は,ステータスコード72000が返されます。
71002メッセージキューからの入力処理中に障害が発生しました。
メッセージキューが閉塞されています。
72000<MHPの実行でリターンした場合>
  • 先頭セグメントを受信するRECEIVE文を実行する前に,中間セグメントまたは最終セグメントを受信するRECEIVE文を実行しています。先頭セグメントを受信する場合は,FIRSTを指定してRECEIVE文を実行してください。
  • ステータスコード71000が返されたあとで,RECEIVE文を実行しています。
<SPPの実行でリターンした場合>
SPPではRECEIVE文を実行できません。
72001SYMBOLIC TERMINAL句に設定した論理端末名称が間違っています。
RECEIVE文を実行できない論理端末を設定しています。
72013一意名1のLの指定値を超えるセグメントを受信しました。一意名1のLの指定値を超えた部分は切り捨てられました。
72020SYNCHRONOUS MODE句に設定した値が間違っています。
72024FOR句に設定した値が間違っています。
72036一意名1のLの指定値が不足しています。5バイト以上の領域を確保してください。
上記以外プログラムの破壊などによる,予期しないエラーが発生しました。