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