トリガーの使用例
例1:現在の勘定残高を計算する
Object : Account (ACNT) Trigger Field : "Account Balance" (ACCBAL) Trigger Method : Calculates the current balance of the account. Trigger Event(s) : 1. AFTER READ when ACCBAL is REF (referenced) Invoked By : (i.e. How is an account balance retrieved ?) FETCH FIELDS(....#ACCBAL....) FROM_FILE(ACNT) or SELECT FIELDS(....#ACCBAL....) FROM_FILE(ACNT) Comments : Quite efficient because ACCBAL is only calculated when the requester asks for it.
例2:注文のバッチ印刷ジョブを送信する
Object : Order (ORDR) Trigger Field : "Print Required" (PRINT_REQ) Trigger Method : Submits batch order print job. Batch function prints order and updates PRINT_REQ to 'N'. Trigger Event(s) : 1. AFTER INSERT when PRINT_REQ EQ 'Y' 2. AFTER UPDATE when PRINT_REQ EQ 'Y' and PRINT_REQ NEP PRINT_REQ Invoked By : (i.e. How is an order submitted for printing ?) CHANGE #PRINT_REQ 'Y' UPDATE FIELD(#PRINT_REQ) IN_FILE(ORDR) Comments : It may seem a little obscure as an IBM i based trigger but what if the update comes from a PC based application via the LCOE facility, or from a batch job that starts automatically every morning and automatically selects certain orders for printing ?