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