Hitachi

OpenTP1 Version 7 分散トランザクション処理機能 OpenTP1 プログラム作成リファレンス COBOL言語編


CBLDCMCF('TEMPGET ')

〈このページの構成〉

名称

一時記憶データの受け取り

形式

PROCEDURE DIVISIONの指定

CALL 'CBLDCMCF' USING 一意名1 一意名2 一意名3

DATA DIVISIONの指定

01 一意名1.
   02 データ名A  PIC X(8) VALUE 'TEMPGET '.
   02 データ名B  PIC X(5).
   02 FILLER     PIC X(3).
   02 データ名C  PIC X(4) VALUE SPACE.
   02 データ名D  PIC X(4) VALUE SPACE.
   02 データ名E  PIC 9(8).
   02 データ名F  PIC 9(8).
   02 データ名G  PIC 9(9) COMP.
   02 データ名H  PIC X(4) VALUE SPACE.
   02 データ名I  PIC X(4) VALUE SPACE.
   02 データ名J  PIC X(4) VALUE SPACE.
   02 データ名K  PIC X(4) VALUE SPACE.
   02 データ名L  PIC X(8) VALUE SPACE.
   02 データ名M1 PIC X(4) VALUE SPACE.
   02 データ名M2 PIC X(8) VALUE SPACE.
   02 データ名M3 PIC X(4) VALUE SPACE.
   02 データ名M4 PIC 9(9) COMP VALUE ZERO.
   02 データ名M5 PIC 9(9) COMP VALUE ZERO.
   02 データ名M6 PIC X(1) VALUE SPACE.
   02 データ名M7 PIC X(1).
   02 データ名N  PIC X(14) VALUE LOW-VALUE.
01 一意名2.
   02 データ名O  PIC X(4) VALUE SPACE.
   02 データ名P  PIC X(8) VALUE SPACE.
   02 データ名Q  PIC X(8) VALUE SPACE.
   02 データ名R  PIC X(8) VALUE SPACE.
   02 データ名S  PIC X(28) VALUE LOW-VALUE.
01 一意名3.
   02 データ名T  PIC 9(x) COMP.
   02 データ名U  PIC X(x).
   02 データ名V  PIC X(n).

機能

継続問い合わせ応答用一時記憶領域に格納されている一時記憶データを受け取ります。

データ名Gの長さ(9〜32,008バイト(バッファ形式1の場合),または7〜32,006バイト(バッファ形式2の場合))を超える一時記憶データがある場合,超えた分については切り捨てます。

データ名Gから8(バッファ形式1の場合),または6(バッファ形式2の場合)を減算した値と比べて一時記憶データ長の方が短い場合,データ名Vに一時記憶データを設定します。データ名Vの残りの領域については何も設定しません。

受け取り要求実行時,初期状態(継続問い合わせ応答開始後,CBLDCMCF('TEMPPUT ')を1回も実行していない状態)の場合,アプリケーション属性定義(mcfaalcap -n)のtempsizeオペランドで指定した長さの(00)16の一時記憶データがあるものとしてCBLDCMCF('TEMPGET ')を実行します。

受け取り領域(一意名3で示す領域)の形式を次に示します。

[図データ]

UAPで値を設定するデータ領域

●データ名A

一時記憶データの受け取りを示す要求コードを「VALUE 'TEMPGET△'」と設定します。

●データ名C,データ名D

空白を設定します。

●データ名E,データ名F

MCFで使用する領域です。

●データ名G

一時記憶データを受け取る領域の長さを9〜32,008バイト(バッファ形式1の場合),または7〜32,006バイト(バッファ形式2の場合)で設定します。

●データ名H,データ名I,データ名J,データ名K,データ名L,データ名M1,データ名M2,データ名M3

空白を設定します。

●データ名M4,データ名M5

0を設定します。

●データ名M6

空白を設定します。

●データ名M7

使用するバッファ形式を設定します。

'1' … バッファ形式1を使用する場合に設定します。

'2' … バッファ形式2を使用する場合に設定します。

●データ名N

「LOW-VALUE」を設定します。

●データ名O,データ名P,データ名Q,データ名R

空白を設定します。

●データ名S

「LOW-VALUE」を設定します。

●データ名U

【バッファ形式1の場合】 PIC X(8)

【バッファ形式2の場合】 PIC X(4)

MCFで使用する領域です。

OpenTP1から値が返されるデータ領域

●データ名B

ステータスコードが,5けたの数字で返されます。

●データ名T

【バッファ形式1の場合】 PIC 9(9)

前回更新した一時記憶データの長さが返されます。初期状態の場合,継続問い合わせ応答用一時記憶領域の長さ(アプリケーション属性定義(mcfaalcap -n)のtempsizeオペランドの指定値)が返されます。

【バッファ形式2の場合】 PIC 9(4)

前回更新した一時記憶データの長さ+6が返されます。初期状態の場合,継続問い合わせ応答用一時記憶領域の長さ(アプリケーション属性定義(mcfaalcap -n)のtempsizeオペランドの指定値)+6が返されます。

●データ名V

受け取った一時記憶データが返されます。初期状態の場合,継続問い合わせ応答用一時記憶領域の長さ(アプリケーション属性定義(mcfaalcap -n)のtempsizeオペランドの指定値)分だけ(00)16が埋められます。

ステータスコード

ステータスコード

意味

00000

正常に終了しました。

72000

SPPではCBLDCMCF('TEMPGET ')を呼び出せません。

72013

一時記憶データ格納バッファ領域の長さ(データ名Gから8(バッファ形式1の場合),または6(バッファ形式2の場合)を減算した値)を超える一時記憶データを受け取りました。一時記憶データ格納バッファ領域の長さを超える一時記憶データを切り捨てました。

72016

データ名Nまたはデータ名Sに設定した値が間違っています。

72028

データ名Aに設定した値が間違っています。

72036

データ名Gの設定値が不足しています。9バイト以上(バッファ形式1の場合),または7バイト以上(バッファ形式2の場合)の領域を確保してください。

72101

継続問い合わせ応答型でないアプリケーションで,CBLDCMCF('TEMPGET ')を呼び出しました。

72106

先頭セグメントを受信する CBLDCMCF('RECEIVE ')を呼び出す前に,CBLDCMCF('TEMPGET ')を呼び出しました。

72107

CBLDCMCF('CONTEND ')を呼び出したあとで,CBLDCMCF('TEMPGET ')を呼び出しました。

上記以外

プログラムの破壊などによる,予期しないエラーが発生しました。