Create On-Update Trigger
MaxL create on update trigger文は、選択したEssbaseキューブ領域全体の状態の変更を追跡するためのトリガーを作成または置換するために役立ちます。トリガーは、セルが更新されるとすぐにアクティブ化されます。
トリガーは、領域内での更新(イベント)中に、指定された制約条件への違反があったかどうかを追跡するために役立ちます。また、違反が検出された場合に実行する結果のアクションを指定するために使用できます。
必要な最小権限: データベース・マネージャ。
タイプが指定されていない場合でも、on-updateトリガーがデフォルト・タイプのトリガーです。データの更新プロセス中に、キューブ領域に対して指定された条件を満たすセルの更新が行われると、すぐにトリガーがアクティブになります。on updateトリガーは、集約ストレージ・データベースではサポートされません。集約ストレージ・データベースを使用している場合は、after-update triggersを作成できます。
ノート:
特定のセルに、計算の前にあったのと同じ値が計算で割り当てられる場合、そのセルに対してトリガーはアクティブになりません。つまり、セルの値が変更されない場合、ブロックはダーティとしてマークされず、それらのブロックに対するトリガーは、トリガー条件に違反していた場合でもアクティブ化されません。
ノート:
計算、データ更新またはデータ・ロードの間は、トリガーを作成または置き換えできません。
キーワード
MaxL create on update trigger文を使用して、次の方法でトリガーを作成します:
- create [on update] trigger TRIGGER-NAME...
-
新しい更新時トリガーを作成します。on updateキーワードはオプションで、更新時トリガーはデフォルトで作成されます。
- create or replace [on update] trigger TRIGGER-NAME...
-
更新時トリガーを作成するか、同じ名前の既存のトリガーを置き換えます。
- create [on update] trigger ... log_value OFF...
-
オプションのlog_value OFF構文は、トリガー・スプール・ファイルにデータ値を記録しません。これはデフォルトです。
- create [on update] trigger ... log_value ON...
-
オプションのlog_value ON構文は、新しいデータ値と古いデータ値をトリガー・スプール・ファイルに記録します。
- create [on update] trigger ... where <cube area>...
-
where句は、追跡するキューブの領域を定義する方法です。有効な対称MDXスライサの指定を使用します。
- create [on update] trigger ... when <condition>...
-
when句は、テストする条件を定義する方法です。キーワードWHENに続けて有効なMDX条件式を使用します。条件をテストするには、MDX条件演算子および論理演算子、ブール関数およびMDX反復関数を使用できます。
- create [on update] trigger ... then <action>...
-
then句は、WHEN条件が満たされた場合に実行するアクションを定義する方法です。「トリガーの例」の例を参照してください。
- create [on update] trigger ... else <action>...
-
オプションのelse句は、WHEN条件が満たされない場合に実行するアクションを定義する方法です。「トリガーの例」の例を参照してください。
- create [on update] trigger ... end
-
すべてのcreate trigger文をENDキーワードで終了する必要があります。
例
create or replace on update trigger Sample.Basic.EastColas log_value ON where (Jan, Sales, Actual, [100], East) when Jan > 1850 then spool EastColas_alert end;