貼り付け
式は、ポリシー ストア内にオブジェクトとして格納すると、他の式を含め、どこからでも名前で参照できます。どの式も、プレースホルダ %1 ~ %9 および特別のプレースホルダ %0 を使用して、名前付き式に値を渡すことができます。これは「貼り付け」と呼ばれます。
casso126jjp
式は、ポリシー ストア内にオブジェクトとして格納すると、他の式を含め、どこからでも名前で参照できます。どの式も、プレースホルダ %1 ~ %9 および特別のプレースホルダ %0 を使用して、名前付き式に値を渡すことができます。これは「
貼り付け
」と呼ばれます。名前付き式には、仮想ユーザ属性およびユーザ クラスという 2 つのタイプがあります。仮想ユーザ属性名の先頭の文字は番号記号(#)で、ユーザ クラス名の先頭の文字は符号です。この 2 つのタイプの名前付き式にはいずれも、その後に 9 つまでのパラメータを指定できます。構文は、関数の構文と同様です。
#virtual_user_attribute(P1, P2, P3, P4, P5, P6, P7, P8, P9) @user_class(P1, P2, P3, P4, P5, P6, P7, P8, P9)
ポリシー ストア内で名前付き式を作成するときには、組み込みの演算子、関数、リテラル データ型、プレースホルダ、および他の名前付き式を使用できます。変数データを名前付き式に渡すには、プレースホルダを使用します。以下の例では、URL が、参照されるたびに更新されます。したがって、URL をプレースホルダ %1 で表す必要があります。
例:
URL を受け取ってファイル名を返す、#URLFile という名前の仮想属性を、次のように作成できます。
#URLFile := { FIND(%1, '/')=0 ? %1 : #URLFile(AFTER(%1, '/')) } Return_value=#URLFile('C:\My Documents\expression_syntax.doc') Return_value='expression_syntax.doc'
この例では、URL が、プレースホルダ %1 経由で組み込み関数 FIND に渡されます。FIND は URL 内で「/」を検索し、最初に見つかった「/」の位置を返します。「/」が見つからない場合は、0 が返されます。また、#URLFile はファイル名を返します。それ以外の場合は、URL が、プレースホルダ %1 経由で組み込み関数 AFTER に渡されます。AFTER は、URL の、「/」に続く部分を返します。その後、短縮された URL が #URLFile に渡されます。再帰がサポートされています。
以下の表は、この例が繰り返されるたびに返される、位置および URL の値を示しています。
繰り返し
| 位置
| URL
|
1 | 3 | 'My Documents\expression_syntax.doc' |
2 | 16 | 'expression_syntax.doc' |
ENUMERATE や LOOP などの特定の組み込み関数が同じ名前付き式を複数回(セット内の要素ごとに 1 回)呼び出す場合は、特別のプレースホルダ %0 を使用して、その名前付き式を作成する必要があります。たとえば、セット要素のすべての数値から後続スペースを削除する、#RTrimset という名前の式を作成できます。
#RTrimset := RTrim(%0)
その後に、組み込み関数 ENUMERATE を使用して、#RTrimset にセットを渡すことができます。
Return_value=ENUMERATE('First_name ^Middle_name ^Last_name ',#RTrimset) Return_value='First_name^Middle_name^Last_name'
この例では、名、ミドル ネーム、および姓という 3 つの要素でセットが構成されています。ENUMERATE は、この各要素を #RTrimset に渡します。#RTrimset は後続スペースを削除し、短縮された名前を ENUMERATE に返します。ENUMERATE は、返されるそれぞれの要素を演算結果に含め、それらをキャレット文字で区切ります。