電子メールのカスタマイズのリファレンス
次のリファレンスでは、電子メールを定義するために使用される、疑似言語の語義およびコンポーネントの構文を簡潔に示します。疑似言語により、電子メール通知をカスタマイズするための単純な、ただし柔軟な方法が提供されます。次に、疑似言語の変換/制限のサマリーを示します。
-
--で始まる個別の行を使用して、コメント(または任意の自由形式テキスト)を追加できます。コメントは、行の終わりに付加することもできます。
-
属性を使用できます。
-
IF、ELSE、ENDIF制御構造を使用できます。ANDまたはORによって、複数の条件を使用することもできます。ネストされたIF文はサポートされていません。
-
書式設定の目的でスペースを挿入できます。実際の電子メールでは、行頭のスペースは無視されます。行頭にスペースを挿入するには、[SP]属性を使用します。
-
エスケープするには/を使用し、属性名、演算子またはIF句を追加するには、[または]を使用します。
-
HTMLはサポートされません。
予約語および予約演算子
次の表に、電子メール・スクリプトの変更で使用されるすべての予約語と予約演算子を示します。
表6-1 予約語および予約演算子
予約語および予約演算子 | 説明 |
---|---|
IF、ELSIF、ENDIF、ELSE |
IF-ELSE構造の中で使用されます。 |
AND、OR |
ブール演算子 - IF-ELSE構造でのみ使用されます。 |
NULL |
属性に関して、NULL値をチェック - IF-ELSE構造でのみ使用されます。 |
| |
パイプ演算子 - 属性のリスト内で最初の非NULL値を示すのに使用されます。 たとえば:
|
EQ, NEQ |
EqualおよびNot-Equal演算子 - NULL、STRING、NUMERIC値に適用できます。 |
/ |
エスケープ文字 - 予約語および予約演算子をエスケープするのに使用します。エスケープ文字は、それに続く文字が別の意味で解釈されることを表します。 |
[ , ] |
区切り文字は、属性名とIF節の境界を決定します。 |
構文の要素
リテラル・テキスト
電子メールのコンテンツの一部としてテキストを指定できます。このテキストは電子メールに表示されますが、Oracle Management Services (OMS)の言語設定が変更されていると、翻訳はされません。たとえば、'my Oracle Home'は、生成後の電子メールでは'my Oracle Home'と表示されます。
事前定義された属性
事前定義された属性/ラベルは、特定のコンテキストで実際の値に置き換えられます。事前定義された属性/ラベルを指定するには、次の構文を使用します。
[PREDEFINED_ATTR]
属性名は、大文字でも小文字でも構いません。構文解析のプロセスでは、大/小文字が区別されません。
一組の大カッコを使用して、事前定義された属性とリテラル・テキストとを区別します。たとえば、ジョブの電子メール通知の場合、実際のジョブ名は[EXECUTION_STATUS]
で置き換えられます。メトリック・アラート通知の場合、[METIRC_COLUMN]
は実際のメトリック列の名前で置換されます。
エスケープ文字"/"を使用して、単語を指定し、それらを事前定義されたラベル/属性として解析されないようにできます。たとえば、/[NEW/]
は、解釈される際、事前定義された属性である[NEW]
とはみなされません。
演算子
EQ、NEQ
- テキストおよび数値に使用します。
NULL
- テキストおよび数値に使用します。
GT、LT、GE、LE
- 数値に使用します。
制御構造
次の表に、使用可能なスクリプト制御構造を示します。
表6-2 制御構造
制御構造 | 説明 |
---|---|
パイプ"|" |
2つ以上の属性を'|'文字で区切ることができます。たとえば、 この例では、現在のアラート・コンテキスト内で使用可能な属性のみが実際の値に置換され、電子メールで使用されます。複数の属性が該当する場合、一番左の属性のみが使用されます。 |
IF |
テキスト・ブロックが条件文になります。1レベルのIFおよびELSIFのみサポートされます。ネストされたIF構造はサポートされていません。 NULL値にEQ/NEQ演算子を使用すると、IFまたはELSIF評価ですべての属性が使用できます。他の演算子は、"SEVERITY"と"REPEAT_COUNT"でのみ使用可能です。 IFブロック内では、値を引用符" "で囲む必要があります。Enterprise Managerでは、"EQ"とその他のキーワード("and"、"or"など)の位置に基づいて属性名およびその値を抽出します。たとえば、 [IF REPEAT_COUNT EQ “1" AND SEVERITY EQ “CRITICAL" THEN] 前述の文は、アラートの属性が次の条件に一致する場合に真になります。
IFブロックの例: [IF EXECUTION_STATUS NEQ NULL] [JOB_NAME_LABEL]=[EXECUTION_STATUS] [JOB_OWNER_LABEL]=[JOB_OWNER] [ENDIF] [IF SEVERITY_CODE EQ CRITICAL ] [MTRIC_NAME_LABEL]=[METRIC_GROUP] [METRIC_VALUE_LABEL]=[METRIC_VALUE] [TARGET_NAME_LABEL]=[TARGET_NAME] [KEY_VALUES] [ENDIF] IFとELSEIFブロックの例: [IF SEVERITY_CODE EQ CRITICAL] statement1[ELSIF SEVERITY_CODE EQ WARNING] statement2[ELSIF SEVERITY_CODE EQ CLEAR] statement3[ELSE] statement4[ENDIF] |
コメント
1行のテキストの先頭に、ハイフンを2つ(--)付加することによって、スクリプトにコメントを追加できます。たとえば、
-- Code added on 8/3/2009 [IF REPEAT_COUNT NEQ NULL] . . .
コメントは、テキスト行の最後にも配置できます。
[IF SEVERITY_SHORT EQ W] -- for Warning alert
カスタマイズの内容に含まれるHTMLタグ
HTMLタグの使用はサポートされません。
Enterprise Managerでは、電子メール・スクリプトを解析する際、HTMLタグに含まれる"<"および">"の文字をエンコードした形式(<および>)に変換します。これにより、宛先のシステムでは、HTMLタグがHTMLとして扱われなくなります。
例
電子メールのカスタマイズ・テンプレート・スクリプトでは、次の3つの主要な演算子をサポートします。
-
比較演算子: EQ/NEQ/GT/LT/GE/LE論理演算子: AND/ORパイプライン演算子: |