Dynamics CRM 2015/Online 2015 更新プログラム 業務ルールの新機能


みなさん、こんにちは。

今回は Microsoft Dynamics CRM 2015 および Microsoft Dynamics CRM Online
2015 更新で提供される、業務ルールの新機能を紹介します。

業務ルール新機能

業務ルールは Microsoft Dynamics CRM 2013 および Microsoft Dynamics CRM
Online Fall ’13 で提供された機能です。業務ルールについてはこちらの記事
ご覧ください。

今回のリリースでは既存の新たに以下の新機能が追加されました。

– AND/OR 条件
– If/Else If/Else 条件
– 既定値の設定
– サーバー側実行

AND/OR 条件

以前のリリースでは複数条件を指定した場合 AND 条件のみがサポートされて
いましたが、今回のリリースでは OR (または) 条件がサポートされています。

image

If/Else If/Else 条件

オプションセットの値の様に複数の条件で場合分けする際に、以前までは
それぞれの条件ごとに業務ルールを作成する必要がありましたが、今回の
リリースで If/Else If/Else 条件を指定することができるようになりました。

以下の画面ショットでは、企業形態が「公開企業」の場合と「非公開企業」
の場合、およびそれ以外の 3 つの条件に分けられています。

image

既定値の設定

既定値の設定はレコードの作成時に対してのみ利用できる機能です。既に
値が設定されているレコードを更新した際には影響しません。この機能に
よりレコード作成時に必要な値が入ることを保障します。

以下の画面ショットでは、利用限度額の既定値を設定しています。

image

サーバー側実行

業務ルールはクライアントサイドで実行されるフォームスクリプトとして
実行される機能でしたが、今回のリリースではサーバー側でも実行する機能
が提供されます。

業務ルールをサーバー側でも実行したい場合、スコープを「エンティティ」
に変更します。こうすることで 1 つのルールでクライアントサイドおよび
サーバー再度両方で処理が実行されます。

image

サーバー側実行と既定値の利用

新しい概念であるサーバー側実行と既定値の利用を試してみましょう。

1. 設定 | カスタマイズ | システムのカスタマイズを開きます。
image

2. エンティティ | 取引先企業 | 業務ルールより、新規をクリックします。
image

3. ルール名に「限度額既定値」と入力します。

4. スコープを「すべてのフォーム」から「エンティティ」に変更します。
image

5. 操作セクションの「+アクションの追加」をクリックして「既定値の
設定」をクリックします。
image

6. 以下のように利用限度額の既定値を設定して、右下のチェックマークを
クリックします。
image

7. 「保存」ボタンをクリックします。

8. 「アクティブ化」ボタンをクリックします。確認ダイアログでも
「アクティブ化」をクリックして業務ルールをアクティブにします。

動作確認

今回はいくつかのパターンで動作を確認します。

通常フォームからの新規作成

1. 営業 | 取引先企業から「新規」ボタンをクリックします。
image

2. フォーム下部にある「利用限度額」フィールドを確認します。
image

値を上書きした場合の挙動

既定値は値が無い場合に値を設定する機能になるため、手動で値を
上書きした場合は、その値が残ります。

1. 営業 | 取引先企業から「新規」ボタンをクリックします。

2. フォーム下部にある「利用限度額」フィールドに既定値が入っている
事を確認してから任意の値で上書きしてからレコードを作成します。

3. レコードで手動で設定した値が維持されている事を確認します。

簡易作成からの新規作成

最後に「利用限度額」フィールドがないフォームである簡易作成から
レコードを作成した場合も、サーバー側の処理によって値が入ることを
確認します。

1. ナビゲーションバーの「作成」ボタンをクリックして、「取引先企業」
をクリックします。
image

2. 任意の名前を付けて保存します。

3. 保存したレコードを開いて「利用限度額」に既定値があることを
確認します。

各種制限

最後に各種制限を紹介します。

– スコープがエンティティ以外に設定された業務ルールでは、レコード
保存時には動作しません。
– フィールドに対してのみ設定ができるため、タブやセクションに対する
表示のコントロールが必要な場合は JavaScript での開発が必要です。
– 業務ルールでフィールド値を変更している場合、OnChange イベントに
設定されたスクリプトは無限ループを回避するため動作しません。
– フォームにないフィールドについては、スコープをエンティティに設定
した既定値の設定以外は機能せず、またエラーを出すこともありません。
– 形式を「期間」「タイムゾーン」「言語」に設定した整数フィールドは
業務ルールで利用できません。
– タブレット用 Microsoft Dynamics CRM アプリケーションは業務ルール
をキャッシュされるため、新しいルールはアプリケーションを一旦終了
してから起動しない限り反映されません。
– 参照フィールドの値を業務ルールで設定している場合、表示名を利用
してレコードを検索するため、対象レコードの表示名を変更した場合は
業務ルールも更新する必要があります。

まとめ

今回のリリースでは条件をより詳細に設定できるようになったことで
これまで複数に分割せざるをえなかったルールを統合できます。また
サーバー側の処理もプラグイン開発をする事なく設定できると同時に
クライアント側とサーバー側の処理を 1 つのルールで定義できます。

是非お試しください!

– 中村 憲一郎

Comments (2)

  1. 通りすがり より:

    いつも有意義な情報提供ありがとうございます。

    サーバー側実行について質問がございます。

    現在、あるフィールドの値の変更により別のフィールドの値を

    変更するクライアントスクリプトを実装しています。

    ところが複数レコードを選択し「編集」でまとめて変更する場合は

    フォームスクリプトが走らず希望が叶いません。

    今回のサーバー側実行では、フォームに存在しないフィールドも

    変更されるようですが、「編集」でまとめて値を変更した場合も

    それをトリガーとして、サーバー側実行が走り指定したフィールドの

    値をまとめて変更するような動きをするのでしょうか。

    差し支えなければ、ご教示いただけますと助かります。

    よろしくお願いします。

  2. Takaya Kawano より:

    コメントいただきありがとうございます!

    こちらで簡単に動作確認したところ、複数レコードの一括編集でも業務ルールが有効となりました。

    ・取引先企業 の名前フィールドに "test" を含むとき、説明フィールドに "test" といれる

    ・2つのレコードを選択して名前を変更。"test" を含める

    ・更新後レコードを開いて説明に "test" と入っていることを確認

    評価版を利用してお試しいただくことが可能ですので、是非有効性をご確認ください。

    – 河野 高也

Skip to main content