機械翻訳について

トリガーの例

関連するMaxL文: alter triggercreate triggerdisplay triggerdrop trigger

次の例は、Sample.Basicデータベースに基づいています。

ノート:

「動的計算」メンバーまたは別のパーティションのメンバーからのデータを必要とするトリガーは定義できません。

例1: 1月の販売のトラッキング

例1は、翌月、製品およびリージョンのActual、Salesの値を追跡します:

  • January (Yearディメンション・メンバーJan)

  • Colas (Productディメンション・メンバー100)

  • 東部リージョン (Marketディメンション・メンバーEast)で

計算されている現在のメンバーがJanで、JanuaryのColasのActual, Sales値が20を超えると、ファイルTrigger_jan_Salesにエントリが記録されます。

create or replace trigger Sample.Basic.Trigger_Jan_20
Where 
 {(Jan,Sales,[100],East,Actual)}
When 
 Jan > 20 AND Is(Year.CurrentMember, Jan) 
then spool Trigger_Jan_20
end;

例2: 第1四半期の販売のトラッキング

例2は、次の月、製品およびリージョンの実績、販売の値を追跡します:

  • January, February, March (Yearディメンション・メンバーQtr1の子)

  • Colas (Productディメンション・メンバー100)

  • 東部リージョン (Marketディメンション・メンバーEast)で

計算される現在のメンバーがJan、FebまたはMarで、January、FebruaryまたはMarchのいずれかの月のColasのActual、Salesの値が20を超えると、Trigger_Jan_Sales_20、Trigger_Feb_Sales_20またはTrigger_Mar_Sales_20ファイルにエントリが記録されます。

create or replace trigger Sample.Basic.Trigger_Qtr1_Sales
Where 
Crossjoin(
 {Qtr1.children}, 
 {([Measures].[Sales], [Product].[100], [Market].[East], [Scenario].[Actual])}
 )
When 
 Year.Jan > 20 and is(Year.currentmember, Jan) 
then spool Trigger_Jan_Sales_20
When 
 Year.Feb > 20 and is(Year.currentmember, Feb) 
then spool Trigger_Feb_Sales_20
When
 Year.Mar > 20 and is(Year.currentmember, Mar) 
then spool Trigger_Mar_Sales_20
end;

例3: インベントリ・レベルのトラッキング

例3は、次の製品、リージョンおよび月のインベントリ・レベルを追跡します:

  • Colas (製品100)

  • 東部リージョン (市場East)で

  • January、FebruaryおよびMarch (Qtr1の子)の場合

東部リージョンのColasのインベントリが500,000未満の場合、トリガー例では受信者@example.comに電子メールを送信します。

create or replace trigger Sample.Basic.Inventory_east
where CrossJoin(
 {[Qtr1].children},
 {([East],[100],[Ending Inventory])}
)
when [Ending Inventory] < 500000 then
mail ([smtp_server.example.com],[sender@example.com],
        [recipient@example.com], 
[Subject of E-Mail])
end;