ファイルでデータベース・トリガーを使用可能にする

これを行うと、LANSAを介して行われるものかLANSA以外の手段を介して行われるものかを問わず、ファイルに行われるすべてのI/OでLANSAリポジトリのルールを利用できるようになります。例えば、RPGまたはCOBOLアプリケーションを使用してファイルを更新すると、リポジトリの妥当性規則が強制され、LANSAトリガー・ファンクションがある場合は実行されます。さらに、ファイルに対してデータベース・トリガーが起動されるときには必ず、トリガー環境をユーザーが終了するためのプログラムDCTRGENVUEをジョブのライブラリ・リストに入れておくことで、正しいLANSA環境を確立できるようにする必要があります。データベース・トリガーは、RDMLX区画のファイルに対してのみ使用可能です。

ファイルのデータベース・トリガーを使用可能にするとどうなるか

ファイルでデータベース・トリガーを使用可能にした場合、データベース・トリガーのプログラム名が必要です。初期状態では、これはDB <ファイル名>になっています (『LANSA テクニカル リファレンスガイド』の「データベース トリガー プログラム」参照)  が、これにより OAM またはデータベース・トリガー・プログラム名との重複が発生する場合、上書きできます。次の機会にファイルが処理可能になると、ファイルに対して定義されている妥当性規則やトリガーに従い、データベース・トリガー・プログラムが生成されて名前付きアクティベーション・グループで実行できるようコンパイルされ、データベース・トリガーの処理がOAMに、トリガーがデータベースに追加されます。 

妥当性規則

AND/ORトリガー・ファンクション

DBトリガーでの結果

挿入

INSERT前

INSERT前

N/A

INSERT後

INSERT後

更新

UPDATE前

UPDATE前

N/A

UPDATE後

UPDATE後

削除

DELETE前

DELETE前

N/A

DELETE後

DELETE後

N/A

READ前

*

N/A

READ後

READ後

N/A

OPEN前

*

N/A

OPEN後

*

N/A

CLOSE前

*

N/A

CLOSE後

*

 

 

注:「*」は、データベースに実装されないことを意味します。

データベース・トリガー・プログラムとデータベース・トリガーは、I/Oモジュール・ライブラリ内に作成されます。トリガーには次のような名前が付けられます。

LANSA_<program library>_<partition>_<library>_<file>_<trigger time>_<trigger event>

表記の説明:

<program library>は、DCXPGMLIB などの LANSA プログラム・ライブラリです。

<partition>は、PRD などの LANSA 区画です。

<library>は、DCXPRDLIB などのファイル・ライブラリです。

<file>は、PSLMST などのファイル名です。

<trigger time>は、BEFORE などのトリガー時間です。

<trigger event>は、INSERT などのトリガー・イベントです。

トリガー名全体の名前は、例えば LANSA_DCXPGMLIB_PRD_DCXPRDLIB_PSLMST_BEFORE_INSERT のようになります。