最近のアクセス:
アクション後のトリガーイベント

特定のアクションが実行された後にルールをトリガーします。

構文

AfterValidate
これにより、特定のレベルのデータが確認された後のルールの実行が可能になります。ただし、指定されたトランザクションのレベルに関連付けられた挿入、更新、削除の各操作よりは前に実行されます。
有効なトランザクションのルール  [ IF condition ] [ ON AfterValidate ] ;
入力値の説明:
condition
     有効な論理条件です。

AfterInsert

挿入操作の直後にルールをトリガーします。
有効なトランザクションのルール  [ IF condition ] [ ON AfterInsert ] ;
入力値の説明:
condition
      有効な論理条件です。

AfterUpdate

更新操作の直後にルールをトリガーします。
有効なトランザクションのルール  [ IF condition ] [ ON AfterUpdate ] ;
入力値の説明:
condition
      有効な論理条件です。

AfterDelete

削除操作の直後にルールをトリガーします。
有効なトランザクションのルール  [ IF condition ] [ ON AfterDelete ] ;
入力値の説明:
condition
     有効な論理条件です。
AfterComplete
論理作業単位の完了直後にルールをトリガーします。
有効なトランザクションのルール  [ IF condition ] [ ON AfterComplete ] ;

入力値の説明:

condition
     有効な論理条件です。
戻されるタイプ: Boolean (True または False)

関連付けられたレコードを更新または挿入した後に操作がトリガーされます。
A = B * C On AfterInsert, AfterUpdate;
顧客情報を処理するトランザクションがあるとします。新しい顧客の挿入後、または既存の顧客の変更後に顧客情報を印刷するには、顧客レコードをデータベースから再読み込みして印刷するプロシージャーを呼び出す必要があります。
Customers
}
    CustomerId*
    CustomerName
    CustomerAccountBalance
    CustomerAddress
}
次の呼び出しでは、データベースレコードに対する操作 (挿入または更新) が既に実行されています。このため、呼び出されたプロシージャーは再度情報を読み込むことができます。
PrintFile.Call(CustomerId) On AfterInsert, AfterUpdate;
呼び出しは、レコードが挿入または更新された後に実行されます。
この例では
PrintFile.Call(CustId) On AfterComplete;
呼び出しは論理作業単位 (LUW) の完了後に行われます。この場合、挿入または更新は完了しており、コミットの実行により確定されています (トランザクション統合に対応している場合のみ動作します)。
次の例に間違った指定方法を示します:
PrintFile.Call(CustId); // このコードは間違っています。
ここでは、ルールをトリガーするために、顧客 ID が分かれば十分です。マイクロコンピューター環境では、フィールドごとに操作が行われるので、呼び出しは顧客 ID の入力後に実行されます。まだ顧客の挿入や変更が行われていないので、上記のコードは間違っています。
iSeries 環境、Java および Web インターフェースでは、呼び出しは Enter を押した後 (確認要求前) にトリガーされます。これは、フィールドごとではなく、画面ごとにダイアログが実行されるためです。プログラムでは Enter が押された後にのみ、入力されたデータを制御できます。いずれの場合も、挿入または更新の操作はまだ発生していないため、正しくありません。
PrintFile.Call(CustId) On AfterValidate; // このコードは間違っています
上記のルールは明示的な変更があった場合に実行されます。AfterValidate とは、「テーブルに対する操作が確定または検証された後」という意味です。ただし、「確認済み/検証済み」は「実行済み」という意味ではないため、ここではこの仕様は間違いです。

適用範囲

オブジェクト   Transaction オブジェクト
互換性
After(Insert)、After(Update)、および After(Delete) の各関数は、下位互換性を保つために残されています。これらの関数ではなく、AfterInsert、AfterUpdate、および AfterDelete の各イベントを使用するようにしてください。詳細は、「ルールをトリガーするイベント」を参照してください。

参考情報

After 関数
トランザクションルール
アクション前のトリガーイベント
トランザクション内のルールをトリガーするイベント









サブページ
Created: 14/09/18 03:44 by Admin Last update: 21/05/20 04:39 by Admin
カテゴリ
Powered by GXwiki 3.0