RECEIVE − 一時記憶データの受け取り
- 〈このページの構成〉
形式
DATA DIVISION(通信記述項)の指定
CD 通信記述名 FOR {INPUT|I-O} STORAGE 〔STATUS KEY IS データ名1〕. 01 一意名1. 02 データ名2 PIC 9(4) COMP. 02 データ名3 PIC X(4). 02 データ名4 PIC X(n).
PROCEDURE DIVISION(通信文)の指定
RECEIVE 通信記述名 {MESSAGE|SEGMENT} INTO 一意名1.
機能
次に示すCALLインタフェースの機能を実現します。
-
CBLDCMCF('TEMPGET ') 一時記憶データの受け取り
一時記憶データ格納バッファ領域(データ名4)は,1〜32,000バイトの長さを確保してください。
データ名4の長さを超える一時記憶データがある場合,超えた分については切り捨てます。
データ名4の長さと比べて一時記憶データの長さの方が短い場合,データ名4に一時記憶データを設定します。残りの領域については何も設定しません。
受け取り要求実行時,初期状態(継続問い合わせ応答開始後,SEND(一時記憶データの更新)文を1回も実行していない状態)の場合,アプリケーション属性定義(mcfaalcap -n)のtempsizeオペランドで指定した長さの(00)16の一時記憶データがあるものとして実行します。
受け取り後の一意名1の形式を次に示します。
通信記述項に設定する項目
通信文に指定する項目
●データ名2
前回更新した一時記憶データの長さ+6が返されます。初期状態の場合,継続問い合わせ応答用一時記憶領域の長さ(アプリケーション属性定義(mcfaalcap -n)のtempsizeオペランドの指定値)+6が返されます。
●データ名3
MCFで使用する領域です。
●データ名4
受け取った一時記憶データが返されます。初期状態の場合,継続問い合わせ応答用一時記憶領域の長さ(アプリケーション属性定義(mcfaalcap -n)のtempsizeオペランドの指定値)分だけ(00)16が埋められます。
ステータスコード
ステータスコード |
意味 |
---|---|
00000 |
正常に終了しました。 |
72000 |
SPPではRECEIVE(一時記憶データの受け取り)文を呼び出せません。 |
72013 |
一時記憶データ格納バッファ領域の長さ(データ名4の長さ)を超える一時記憶データを受け取りました。一時記憶データ格納バッファ領域の長さを超える一時記憶データを切り捨てました。 |
72016 |
通信文にBEFORE ERASINGが設定されています。 |
72036 |
受け取り領域の長さ(一意名1の長さ)が不足しています。7バイト以上の領域を確保してください。 |
72042 |
通信記述項にSYMBOLIC TERMINAL句の設定があり,空白以外が設定されています。 |
72101 |
継続問い合わせ応答型でないアプリケーションで,RECEIVE(一時記憶データの受け取り)文を呼び出しました。 |
72106 |
先頭セグメントを受信するRECEIVE文を呼び出す前に,RECEIVE(一時記憶データの受け取り)文を呼び出しました。 |
72107 |
DISABLE(継続問い合わせ応答の終了)文を呼び出したあとで,RECEIVE(一時記憶データの受け取り)文を呼び出しました。 |
上記以外 |
プログラムの破壊などによる,予期しないエラーが発生しました。 |