イベント実行パラメタの式の使用

多くの(全てではない)イベント実行パラメタで、リテラル値ではなく式を使用して、パラメタの値を指定できます。通常、パラメタの値に変数や動的な値を使用する必要がある場合に、この方法を使用します。

例えば、さまざまな通知やプロンプトメッセージを受信する受信者のグループを指定する必要があります。また、そのグループのメンバーは頻繁に入れ替わる場合があります。そのグループに対してグローバル定数値を作成して、そのグループにメッセージを送信する必要が生じるたびに、そのグローバル定数を使用することができます。グループのメンバーが入れ替わると、1 か所(グローバル定数)で変更を行うだけで、そのグローバル定数を使用する全てのイベントハンドラで自動的にその変更が反映されます。

式の構文

リテラル文字列値を示すには、引用符を使用します。また、番号、日付、ブール値(真/偽)については、引用符は必要とされず、使用することもできません。

以下の例について見てみます。

  • CONDITION( "CreditLimit" < "500000" )

    比較の両側がリテラルストリング値として認識され、イベント実行を行う際にはこの認識に従ってこれらの値が処理されます。値はアルファベット順にストリングとして比較されます。従って、Unicode 照合では「C」は「5」よりも大きくなるため、この条件の結果は偽となります。

  • CONDITION( CreditLimit < 500000 )

    [CreditLimit] が有効な関数として認識されていないため、構文エラーが返されます。

  • CONDITION( P( "CreditLimit" ) > "500000" )

    比較の両側を有効です。ただし、ここでも数値「500000」はリテラルストリング値として処理され、返された [与信限度] フィールドの値と比較されます。プロパティの値には非区分であるため、比較の演算はプロパティ値ではない方の式に依存しています。この場合、「500000」はリテラルストリング値(引用符で指定されているため)になるため、プロパティ値はストリングとしてアルファベット順に「500000」に対して比較され、有効な値が返されるか返されないかはその結果次第です。

  • CONDITION( E(MG_CurrentSite) IN ("MI";"ZZ"))

    MG_CurrentSite パラメタは全ての実行中イベントのために設定されています。これは、イベント実行が現行サイトの値に基づいた処理を容易に終了できるよう使用されます。ハンドラが特定のサイトを操作する場合にのみ、完了実行を使用することができます。

  • CONDITION( P( "CreditLimit" ) > 500000 )

    この例では、再度、[CreditLimit] プロパティの現在の値が使用されます。ただし、今回は数値定数 500000 に対する数値として数学的に比較されます。プロパティ値を数値的に変換できない場合(たとえば、数値以外のモジュールを含む場合)、ランタイムエラーが発生します。

パラメタの構築に使用される式と関数の詳細については、 『Guide to the Application Event System』 の「式関数」を参照してください。

関連トピック