Dynamics CRM 2015/Online 2015 更新プログラム 新しいフィールドの種類 : 計算列エディターの機能

みなさん、こんにちは。

今回は前回紹介した計算列で利用できるエディターの機能を紹介します。

この記事はシリーズものですので、以前の記事は以下リンクよりご覧ください。

新しいフィールドの種類 : 概要
新しいフィールドの種類 : ロールアップ列 入門
新しいフィールドの種類 : ロールアップ列 詳細
新しいフィールドの種類 : 計算列 入門

IntelliSense のサポート

計算列エディターでは、効率良く計算式を指定できるよう IntelliSense が
サポートされます。

フィールド名

計算式に利用するフィールド名は論理名で入力する必要がありますが名前を
都度調べるのは手間ですしタイプミスも発生します。計算列エディターは
以下の IntelliSense を提供します。

- 部分一致で候補が表示されます。
- 表示名を同時に表示します。
- フィールドの型を同時に表示します。

image

親エンティティのフィールド名

計算列の式には、親エンティティのフィールドを利用することも可能であり、
IntelliSense もサポートされます。以下の手順で指定が可能です。

1. 検索フィールド (親エンティティ) を IntelliSense を利用して指定します。
image

2. 列名に続いてドット (.) を入力します。親エンティティの列が表示されます。
続いてフィールド名を入力するとさらに絞り込みがかかります。
image

関数

計算列は四則演算以外に関数もサポートしています。計算列エディターは
関数も IntelliSense で指定が可能です。また関数はすべて大文字で表示する
ため、フィールド名を見分けが容易になっています。
image

条件式の列指定

また条件の列指定でも IntelliSense が利用可能です。

image

サポートされる関数

エディターでサポートされる関数は以下の通りです。

日付型

指定した時間、日、週、月、年を加算する関数
ADDHOURS
ADDDAYS
ADDWEEKS
ADDMONTHS
ADDYEARS

指定した時間、日、週、月、年を減算する関数
SUBTRACTHOURS
SUBTRACTDAYS
SUBTRACTWEEKS
SUBTRACTMONTHS
SUBTRACTYEARS

文字列結合
CONCAT

文字の左右切り捨て
TRIMLEFT
TRIMRIGHT

サポートされる条件

計算れつエディタは条件ごとに操作を変更できるようになっており、条件も
柔軟に設定が可能です。

IF/ELSE IF/ELSE のサポート

複数の条件を IF/ELSE IF で指定し、その他の条件を ELSE として指定できます。

image

AND/または条件のサポート

1 つ IF 文に複数の条件を指定することも可能です。この場合 AND 条件と
または (OR) 条件が指定できます。

image

エラーの表示

計算式で利用できない式を入力した場合はエラーが表示されます。
image

エラーは内容によって変わります。
image

複雑な計算式の例

前回の記事では10進数を利用してサポート案件のオープン率を出しました。
この場合計算結果が 「66.67」のような数字のため、例えば「66%」と表示
したい場合は文字列を利用する必要があります。早速試してみましょう。

1. カスタマイズにて取引先企業 | フィールドで「新規」をクリックします。
image

2. 以下のように名前を付けます。
image

3. データの種類で「1 行テキスト」を選択し、フィールドの種類より「計算」
を 選択します。その後「編集」ボタンをクリックします。このタイミングで
フィールドは保存されます。
image

4. エディターが開きます。操作の「+アクションの追加」をクリックします。

5. エディターを使いながら、以下の計算式を入力します。
Concat(TrimRight(Concat(((new_openincident / (new_openincident + new_closedincident)) * 100), ""), 11), "%")

この計算式の内容は以下の通りです。複雑ですので、分解して説明します。
- new_openincident / (new_openincident + new_closedincident)) * 100 で
オープン率を計算。尚、結果は小数点 10 桁。
- Concat 関数で上記計算結果と空文字 (””) を結合して文字列に変換。
※これは以下の TrimRight 関数が文字列しか対象としないための対応です。
- TrimRight で小数点および小数点以下 10 桁分の文字列を切り捨て。
- 最後に Concat で上記結果と % を文字列結合。

6. 画面右端のチェックボタンをクリックします。

7. 「保存して閉じる」をクリックします。エディターが閉じてフィールドの
作成画面に戻りますので、ここでも「保存して閉じる」をクリックします。

8. 作成したフィールドを任意のフォームに配置して、公開します。今回は
前回追加したフィールドの下に配置しました。
image

動作確認

以下の様に表示されていれば成功です。

image

まとめ

計算列のエディター機能を利用すれば、迅速に設定が行えまたタイプミスも
大幅に減らす事が可能です。業務ルールの新機能のように IF/ELSE IF/ELSE や
AND/または条件をサポートしているため、1 列で多くの条件をカバーできる
所も大きな魅力です。

最後に計算フィールドの定義についての情報を紹介します。
こちらの記事に書いていること以上に詳細がありますので是非ご覧ください。

計算フィールドの定義
https://technet.microsoft.com/ja-jp/library/dn832103(v=crm.7).aspx

次回は詳細について紹介しますのでお楽しみに!

- 中村 憲一郎