Hitachi

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


CBLDCIST('WRIT')

〈このページの構成〉

名称

ISTテーブルへレコードの出力

形式

PROCEDURE DIVISIONの指定

CALL  'CBLDCIST'  USING  一意名1  一意名2  一意名n

DATA DIVISIONの指定

01 一意名1.
   02 データ名A  PIC X(8) VALUE 'DCISTSVC'.
   02 データ名B  PIC X(5).
   02 FILLER    PIC X(3).
   02 データ名C  PIC X(8).
   02 データ名D  PIC S9(9) COMP.
   02 データ名E  PIC S9(9) COMP.
   02 データ名F  PIC S9(9) COMP.
   02 FILLER    PIC X(12).
01 一意名2.
   02 データ名G  PIC X(4) VALUE 'WRIT'.
   02 FILLER    PIC X(1).
   02 FILLER    PIC X(1).
   02 FILLER    PIC X(1).
   02 FILLER    PIC X(1).
   02 データ名H  PIC S9(9) COMP VALUE ZERO.
   02 一意名3.
      03 データ名I  PIC S9(9) COMP.
      03 データ名J  PIC S9(9) COMP.
   02 一意名4.
      03 データ名I  PIC S9(9) COMP.
      03 データ名J  PIC S9(9) COMP.
        :
        :
   02 一意名m.
      03 データ名I  PIC S9(9) COMP.
      03 データ名J  PIC S9(9) COMP.
01 一意名n.
   02 データ名K  PIC X(n).

機能

指定した範囲のレコードを,ISTテーブルに出力します。複数のレコードを一括して指定した場合に,指定したレコードのうち一つでもエラーが起こると,出力バッファにはレコードを出力しないでCBLDCIST('WRIT')はエラーリターンします。

CBLDCIST('WRIT')が正常に終了すると,自ノードのレコードの内容が更新されます。他ノードのISTテーブルへは,CBLDCIST('WRIT')が正常に終了してから,時間をおいて更新されます。

ISTテーブルのレコードを出力するときは,ISTテーブル名と,CBLDCIST('OPEN')で返されたテーブル記述子を設定します。

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

●データ名A

ISTテーブルとのインタフェースコードを「VALUE 'DCISTSVC'」と設定します。

●データ名C

アクセスするISTテーブルのISTテーブル名を,8文字以内で設定します。8文字に満たない場合は,後ろを空白で埋めてください。

●データ名D

一意名3から一意名mの数(データ名Iとデータ名Jの組の数)を設定します。

●データ名E

出力バッファ長を設定します。出力バッファ長には,(出力レコード長 × 出力レコード数)の値を設定してください。

●データ名F

ISTテーブルをオープンして返された,テーブル記述子を設定します。

●データ名G

ISTテーブルからレコードを出力することを示す要求コードを「VALUE 'WRIT'」と設定します。

●データ名H

0を設定します。

●データ名I

アクセスするレコードの,先頭の相対レコード番号を設定します。

●データ名J

アクセスするレコードの,最後の相対レコード番号を設定します。0を設定した場合は,データ名Iで指定した相対レコード番号のレコードだけを出力します。

●データ名K

出力データ領域(バッファ)を設定します。

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

●データ名B

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

ステータスコード

ステータスコード

意味

00000

指定したレコードは,すべて正常に出力しました。

03800

ISTテーブルへアクセスする順序が間違っています。

03803

データ名Fに設定したテーブル記述子は正常にオープンして得られたテーブル記述子ではありません。

ISTテーブルをオープンしていません。

03804

すべてのレコードを出力するには,データ名Eに設定した出力バッファ長が足りません。

03806

相対レコード番号が間違っています。

03807

メモリが不足しました。

03809

データ名Dに設定した値が,1未満です。

03811

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

03841

出力バッファ長が,出力するすべてのレコード長の合計よりも長過ぎます。

03890

インタフェースコード(データ名A)が間違っています。

03891

要求コード(データ名G)が間違っています。