8.1.7 反映情報編集UOCのサンプル

反映側Datareplicatorに格納してあるUOCのサンプルについて説明します。

<この項の構成>
(1) 格納ディレクトリとファイル名
(2) 抽出環境
(3) 反映環境
(4) 処理の内容

(1) 格納ディレクトリとファイル名

反映側Datareplicatorをインストールすると,サンプルファイルが次のディレクトリに格納されます。

ディレクトリ
UNIX版の場合:/opt/hirdbds/lib/sample/
Windows版の場合:Datareplicatorをインストールしたディレクトリ¥sample¥
ファイル名
hds_redit.ec

(2) 抽出環境

(a) 抽出対象表

抽出対象表の構成を次の図に示します。

図8-7 抽出対象表の構成

[図データ]

注 更新処理の対象は,「在庫量」だけと想定しています。
(b) 抽出処理の内容

サンプルで抽出する処理の内容を次に示します。

(3) 反映環境

(a) 反映対象表の内容

反映対象表の構成を次の図に示します。反映対象表名は,「在庫表」としています。

図8-8 反映対象表(在庫表)の構成

[図データ]

(b) 反映定義

反映定義の内容を次に示します。反映定義は次の条件に従っています。

(4) 処理の内容

編集開始指示関数(hds_ubegin)は,反映側HiRDBへのCONNECT処理を実行します。編集・加工指示関数(hds_uedit)は,更新種別に対応してINSERT,UPDATE,DELETE,PURGE,COMMITを実行します。

UPDATE,DELETEでは,反映対象表に更新対象の行がないエラー(SQLCODE 100)になると,エラーになった更新情報を無視して反映処理を継続します。そのほかのSQL実行エラーが発生した場合,編集終了指示関数(hds_uend)でROLLBACK処理を実行します。編集終了指示関数(hds_uend)は,必要に応じてROLLBACKし,DISCONNECTを実行します。

(a) 編集開始指示関数(hds_ubegin)

hds_ubegin関数のパラメタであるUINTERFACE_BLKから,認可識別子,パスワードを埋込み変数に設定して,その埋込み変数をパラメタとして反映側HiRDBにCONNECTを発行します。

(b) 編集・加工指示関数(hds_uedit)
INSERT
hds_uedit関数のパラメタである反映データブロック(UDATA_BLK)を基に反映対象表の各列の更新データアドレスを導き,各データを埋込み変数に設定します。設定した埋込み変数をパラメタとしてINSERTを実行します。
UPDATE
マッピングキーの列である「商品コード」の更新データアドレスを,hds_uedit関数のパラメタであるキー情報ブロックを基に導き,その更新データを埋込み変数に設定します。
抽出対象表の更新対象列は,列「在庫量」だけのため,hds_uedit関数のパラメタである反映データブロックには,列「在庫量」の更新情報が設定されています。その列「在庫量」の更新データを埋込み変数に設定します。
列「商品コード」の埋込み変数をUPDATEの探索条件値とし,さらに列「在庫量」の埋込み変数を更新値としてUPDATEを実行します。
DELETE
マッピングキーの列「商品コード」の更新データアドレスをhds_uedit関数のパラメタであるキー情報ブロックを基に導き,更新データを埋込み変数に設定します。その埋込み変数をDELETE文の探索条件としてDELETEを実行します。
PURGE
反映対象表の名称「在庫表」を指定し,PURGE TABLEを実行します。
COMMIT
COMMIT WORKを実行します。
注※
hds_uend関数でROLLBACKを実行するフラグとして,hds_uedit関数のパラメタであるインタフェースブロック(UINTERFACE_BLK)の引き継ぎ情報2に「-1」を設定します。
(c) 編集終了指示関数(hds_uend)

ROLLBACK及びDISCONNECTを実行します。

ROLLBACKは,hds_uend関数のパラメタであるインタフェースブロック(UNITERFACE_BLK)の引き継ぎ情報2が「-1」のときだけ実行します。