特殊な管理 > ビジネスオブジェクトの調整 > タイプおよび属性の管理 > タイプおよび属性の管理ユーティリティの使用 > タイプの管理 > タイプの情報ページ > 「属性」タブ > 新規属性の作成 > 計算属性の計算式
  
計算属性の計算式
計算属性の値は、計算式を使用してほかの属性の値から派生します。これらの計算式では、属性値とリテラル値の両方を使用して、派生した属性値を計算または生成できます。
計算式は、計算属性を作成するときの「プロパティを設定」ステップで、「計算式」フィールドに入力できます。または、属性が作成された後、属性の情報ページの「計算式」フィールドを編集できます。
* 
オブジェクトの作成または編集時に計算属性に影響を与える属性が修正されても、計算式が即時に再評価されるわけではありません。作成操作または編集操作の処理後、計算式が再評価され、計算属性の値が更新されます。
計算属性を属性レイアウトに含めるときの表示方法については、属性の表示を参照してください。
計算属性の数値結果のローカライズは、ブラウザのロケールに基づいています。
計算式のデータタイプ
計算式では「文字列」「整数値」「実数」「実数 (単位付き)」「ハイパーリンク」「日付と時刻」「ブール」データタイプの属性のみがサポートされています。計算式の結果は、指定された計算属性のデータタイプと一致する必要がありますが、計算式内部ではさまざまなデータタイプの属性を使用できます。
計算式内部で多様なデータタイプの属性を使用した場合は、演算や関数の実行前に、計算式で使用する演算や関数に応じてデータタイプが自動的に変換されます。計算式の結果では、そのデータタイプが使用されます。データタイプの変換は次の優先順位で適用されます。
1. 「文字列」- 計算式の少なくとも 1 つの引数のデータタイプが「文字列」である場合、すべての引数のデータタイプが「文字列」に変換されます(「ハイパーリンク」および「日付と時刻」は自動的に「文字列」に変換されます)。
2. 「実数 (単位付き)」- 計算式の少なくとも 1 つの引数のデータタイプが「実数 (単位付き)」である場合、すべての引数のデータタイプが「実数 (単位付き)」に変換されます。
3. 「実数」- 計算式の少なくとも 1 つの引数のデータタイプが「実数」である場合、すべての引数のデータタイプが「実数」に変換されます。
4. 「整数値」- 計算式の少なくとも 1 つの引数のデータタイプが「整数値」である場合、すべての引数のデータタイプが「整数値」に変換されます。
5. 「ブール」
たとえば、attrA + attrB という計算式で、attrA「文字列」データタイプで、attrB「実数」データタイプの場合、attrB「文字列」データタイプに変換され、attrA と連結されます。attrA の値が Result: で、attrB の値が 1.5 の場合、計算式の結果は Result: 1.5 になります。
同様に、attrC「整数値」データタイプで、attrD「実数」データタイプの場合、attrC * attrD という計算式では attrC「実数」データタイプに変換され、計算式の結果は「実数」データタイプになります。
計算属性の保存時に、入力された計算式が評価されます。計算式の結果のデータタイプが計算属性のデータタイプと一致していない場合は、エラーが返され、計算式は保存されません。計算式の結果のデータタイプを変換するには、計算式の指定方法を変更します。以下では、<計算式> が変換前のデータタイプを持つ元の計算式です。
計算式の結果のデータタイプを「ブール」「整数値」「実数」「実数 (単位付き)」から「文字列」に変換するには、「計算式」フィールドに次のように入力します。
""+(<計算式>)
計算式の結果のデータタイプを「ブール」「整数値」「実数」から「実数 (単位付き)」に変換するには、「計算式」フィールドに次のように入力します。
unit("1.0000000000000")*(<計算式>)
(元の結果の精度を完全に維持するには、13 個以上のゼロが必要です。)
計算式の結果のデータタイプを「ブール」「整数値」から「実数」に変換するには、「計算式」フィールドに次のように入力します。
1.0*(<計算式>)
計算式の結果のデータタイプを「ブール」から「整数値」に変換するには、「計算式」フィールドに次のように入力します。
1*(<計算式>
例: 数値の計算
演算子と属性の内部名を使用して、目的の属性値を計算する計算式を構築します(計算式では、属性の「表示名」ではなく、「内部名」を使用する必要があります)。
たとえば、Total Cost 属性は、Unit Cost 属性の値に Quantity 属性の値を乗算し、Handling Fee 属性の値を加算したものであるとします。この場合、次の計算式を使用して Total Cost 属性の値を計算できます。
(quantity*unitCost)+fee
例: 数値以外の属性値の結合
計算式を使用して、数値以外の属性値を結合することもできます。
たとえば、ID という名前の計算属性を作成した場合、次の計算式を使用して、タイプの Name 属性と Number 属性の値を ID 属性の値として結合できます。
name+"("+number+")"
この計算式から、MyDocument(0001A) のような ID 属性の値が生成されます。
サポートされている関数
* 
現在、計算属性では複数値関数はサポートされていません。
次の関数がサポートされています。
機能
説明
isNull( )
Null チェック。
unit( )
「文字列」データタイプを「実数 (単位付き)」データタイプに変換します。
str( )
数値を「文字列」データタイプに変換します。
abs( )
絶対値またはマグニチュード。
avg( )
値リストの平均値。
sum( )
値リストの合計。
min( )
値リストの最小値。
max( )
値リストの最大値。
round( )
小数部を含む数値 (実数) を整数に変換します。
小数部の値が 0.5 の場合は、値が偶数に丸められます (たとえば、30.5 は 30 になり、31.5 は 32 になります)。
小数部の値がそれ以外の場合は、最も近い値に丸められます (たとえば、30.8 は 31 になり、33.4 は 33 になります)。
mod()
ある数値を別の数値で割った余りを返します(「整数」データタイプのみ)
${}
特殊文字が使用されている属性内部名をラップして、計算式で使用できるようにします。あらゆる属性内部名をラップできますが、ダッシュ (-)、ドル記号 ($)、または角括弧 ([ ]) が使用されている属性内部名は、計算式で使用するには必ずラップしなければなりません。たとえば、内部名が my-attribute または my[very$complex]-attribute である属性は、以下のようにラップすると計算式で使用できます。
${my-attribute}
${my[very$complex]-attribute}
例: 数値の計算 セクションで使用されている属性の内部名で特殊文字が使用されている場合、「コスト合計」属性の計算式は以下のように表示されます。(${item-quantity}*${unit-cost})+${handling-fee}
サポートされている演算子
以下の演算子がサポートされています。
演算子
説明
+
足し算。文字列の連結にも使用できます。
-
引き算。
*
掛け算。
/
割り算。
( )
括弧は演算の優先順位を示します (括弧内の演算が優先して実行されます)。
" "
二重引用符は、引用符に囲まれた内容がリテラル文字列であることを示します。数値以外で、二重引用符に囲まれていないものは、属性名として処理されます。
>
より大きい
<
より小さい
>=
以上
<=
以下
==
等しい
!=
等しくない
^
べき乗または累乗
&
AND
|
または
~
NOT
^*
排他的論理和
&&
AND
||
または
!
NOT
? :
条件演算子は、指定した条件が true または false の場合の結果を示します。
(condition) ? value if true : value if false
たとえば、タイプに length、width、および shape の属性があり、shape は以下の計算式による計算属性であるとします。
(length>width) ? "longer" : "wider"
length 属性の値が width 属性より大きい場合、shape 属性には longer の値が代入されます。length 属性の値が width 属性の値よりも大きくない場合、shape 属性には wider の値が代入されます。
%
余り