計算属性を使用すると、論理関数や数学的関数を追加して、属性の値を派生させることができます。別の計算済属性に埋め込むと、複雑な関数を作成できます。計算済属性は読取り専用です。評価対象はスケジュールのみです。
スケジュール: ユーザーは任意の計算を追加でき、その計算はタスクに対して明示的に割り当てられているかどうかに関係なく評価されます。
テンプレート: 「計算」オプションが選択されているカスタム属性は、列属性またはフィルタ可能な属性として追加できません。
管理者が「アクション」ダイアログの「属性」セクションに属性を追加すると、ワークフロー・ユーザーがその属性を表示できるようになります。管理者は、アクセス権を「表示しない」に設定することで、特定の役割に対してアクセス権を制限できます。たとえば、管理者が計算済属性XYZに対して、アクセス権を「参照者: 表示しない」
に設定すると、XYZ属性は、参照者の役割しかないユーザーには表示されません。
どのユーザー役割でも、計算済属性を列としてビューおよびポートレットに追加できます。「フィルタ・パネル」にフィルタ可能な属性として追加することもできます。
計算属性を定義するには:
次の計算タイプから選択できます。使用可能なタイプは、属性の「タイプ」(「テキスト」、「整数」など)によって決まります。
値をリストに割当: カスタム値をリスト・タイプの属性に割り当てます
リストを値に割当: カスタム・リストの値を異なる属性の値に割り当てます。リスト・タイプ属性にのみ使用できます。
条件: 条件付き計算(If – Then – Else)
スクリプト: 自由形式のスクリプト計算。タイプが、整数、複数行のテキスト、数値またはテキストの属性にのみ使用できます。
次の表は、属性タイプごとに使用可能な計算タイプを示しています。
属性タイプ | 値をリストに割当て | 条件 | スクリプト | リストを値に割当て |
---|---|---|---|---|
日付 | ||||
日時 | ||||
整数 | X | X | X | |
リスト | X | X | ||
複数行のテキスト | X | X | X | |
数値 | X | X | X | |
テキスト | X | X | X | |
True/False | X | |||
ユーザー | ||||
はい/いいえ | X |
計算式の定義
スクリプト計算タイプを使用すると、自由形式の計算式を入力できます。「属性の追加」および「関数の追加」を使用できます:
属性の追加: 属性を選択すると、「計算式の定義」ボックスのカーソルの位置に属性が挿入されます。カーソルが単語または属性上にある場合は、定義内でその単語/属性が置き換えられます。スクリプトの形式によって、新しい属性の名前がカッコ{}で囲まれます。
使用可能な属性は、スケジュール属性のみです。
関数の追加: 関数を選択すると、「計算式の定義」に関数が追加されます。関数は各パラメータのプレースホルダとともに追加されます。
例: DATE_DIFF関数を計算式の定義に挿入します。
DATE_DIFF(<Date1>, <Date2>, <Type>)
次に、プレースホルダを属性に置き換えます。
DATE_DIFF( {Start Date}, {End Date}, 'DAYS')
数値と日付の関数
絶対値: 指定された数の絶対値を戻します。数値が0未満の場合は、その数字の正の値が戻されます。指定した数値が0以上の場合は、指定した数値が戻されます。
ABS(<Number>)
月の追加: 開始日からの指定した月数の日付オフセットを返します。日付は常に指定した月オフセットに該当します。開始日に、オフセット月を越える日の値がある場合は、オフセット月の最後の日が使用されます。たとえば、EDate (31-Jan-2017, 1)は(28-Feb-2017)を返します。月の場合は、開始日の前または後の月数を入力します。月に対する正の値は将来の日付を生成します。負の値は過去の日付を生成します。
ADD_MONTH(<Start Date>, <Months>, <Length>)
例: ADD_MONTH(DATE(2017, 2, 15) 3)
日付: 年、月および日に対して指定された整数値に基づく日付値を返します。
DATE(<Year>, <Month>, <Day>)
日付差異: 2つの日付の差を年、月、日、時間、分または秒で戻します。たとえばDATE 1とDATE 2には、それぞれ現在の日付(時間コンポーネントなし)と日時を表すTODAYおよびNOWの値を使用できます。
DATE_DIFF(<Date1>, <Date2>, <Type>)
例: DATE_DIFF( {Start Date}, 'TODAY', 'DAYS')
日: 日付の日の値を整数として返します
DAY(<DATE>)
テキストの抽出: 値内の指定した位置からの部分文字列を戻します。
SUBSTRING(<Value>, <Location>, <Length>)
例: SUBSTRING( {Name}, 4, 10)
If Then Else: 条件付きの計算をスクリプト計算に挿入できるようになります。IF_THEN_ELSE計算式は、ネストしてELSE IFタイプの計算式に対応することもできます。
IF_THEN_ELSE(<Condition>, <Value1>, <Value2>)
例: IF_THEN_ELSE( ( {Priority} = 'Low'), 1,IF_THEN_ELSE( ( {Priority} = 'Medium'), 2, IF_THEN_ELSE( ( {Priority} = 'High'), 3, 0)))
例: IF_THEN_ELSE( ( {Priority} = 'Low'), 'Good' IF_THEN_ELSE( ( {Priority} = 'Medium'), 'Better'. 'Best') )
Instring: 値内の部分文字列の索引を戻します。
INSTRING(<Value1>, <Value to Search>)
例: INSTRING({Name}, 'a')
Length: パラメータとしてテキスト値を使用し、テキストの文字数である整数を返します。値が空/nullの場合は0を返します。
Length ({<attribute>})
例: LENGTH("Value")
は5を返し、LENGTH({Name})
はオブジェクトの名前の文字数を返します。
SUBSTRINGを使用した計算を使用して、テキスト値の最後の4文字を抽出します。
SUBSTRING( {MyString}, LENGTH ({MyString}) - 4
小文字: 値を小文字で戻します
LOWERCASE(<Value>)
例: LOWERCASE ({Task Code})
最大: 属性リストの最大値を戻します。任意の数のパラメータを含めることができます。
MAX <Value1>, <Value2>, <ValueN>)
例: MAX( {Scripted Substring Loc a}, {Scripted Substring Loc s}, {Scripted Substring Loc t} )
最小: 属性リストの最小値を戻します。任意の数のパラメータを含めることができます。
MIN (<Value1>, <Value2>, <ValueN>)
例: MIN( {Scripted Substring Loc a}, {Scripted Substring Loc s}, {Scripted Substring Loc t} )
月: 日付の月の値を整数(1から12)として返します
MONTH (<DATE>)
指数: 一方の数字を他方の数字の回数掛け合せます。
POWER(x,y) where x=BASE NUMBER,and y=EXPONENT
の場合、xとyは数値であるかぎり属性または計算にすることができます。
例: POWER(3,4)=81
注:
分数値では、べき根になります。たとえば、POWER(27, 1/3) = 3
で、立方根です。
負の値では、指数計算の逆数になります。たとえば、POWER(2, -2) = 1 / (2^2) = 1 / 4 = .25
です。
丸め処理: 指定された小数点以下の桁数で丸めた値を戻します
ROUND <Attribute>, <Decimal Places>)
例: ROUND( ({Scripted Substring Loc t} / 7), '4')
テキストの場所: 値内の部分文字列の索引(1が最初の位置)を戻します。
INSTRING(<Value>, <Value To Search>)
例: INSTRING( UPPERCASE( {Name} ), 'TAX' )
大文字: 値を大文字で戻します。
UPPERCASE(<Value>)
例: UPPERCASE( {Name} )
年: 日付の年の値を整数として返します。
YEAR (<DATE>)
計算の検証
計算の保存時に、次の検証チェックが実行されます。
計算式の構文が正しい。
計算式で指定された属性と関数が存在する
関数へのパラメータが正しい
循環ループがない