MS_CRMBusinessRules - NetDevInfraWGinOSSConsortium/NetDevInfraWiki GitHub Wiki
-
TOP > Dynamics CRM > CRMのカスタマイズ
- CRM 業務ルールの構成
- CRM セキュリティモデルの作成
- CRM 追加のセキュリティ オプション
- 2013 からの新機能
- プログラミングのスキルがなくてもフォームに条件ロジックを追加できる。
- クライアント サイドの単項目エラー チェックとエラー メッセージの表示
(サーバー サイドは、ワークフロー(プロセス)やプラグイン(カスタム コード))
補足(現在も「業務ルール」として健在): 業務ルール(Business Rules)は
Dataverse/モデル駆動型アプリでもそのまま提供されており、
Power Apps のテーブル設定から作成する。
「JavaScript を書かずにフォームの条件ロジックを表現する」という
本ページの位置づけは現在も変わっていない。
なお、後述の「エンティティ スコープ」で作成した業務ルールは
サーバー側でも評価されるため、
「クライアント サイドのみ」という記述は
フォーム スコープの場合と読むのが正確である。
特定のフィールド値に基づいて、
- 別のフィールドを必須 or 読み取り専用に変更する。
- 計算された値を自動的にフィールドに入力する。
移行メモ(正誤): 元ページの「読み取り変更」は、
後段の「フィールドのロック・ロック解除」の説明と照らして
「読み取り専用」の誤記と判断し、修正した。
条件とアクション。
- 業務ルール エディタで業務ルールを作成・編集する。
- 編集の際は、非アクティブ化して「下書き」の状態に戻す。
業務ルール エディタでフィールドの値と評価条件を定義する。
-
フィールド
- トリガとなるフィールド
- 同じフィールド、別のフィールドを使用可能
-
条件
-
全ての条件が True になる AND のみ。
いずれかの条件が True になる OR は複数の業務ルールを作成する。 -
フィールド × 演算子 × 種類(フィールド or 値 or 計算式)
-
| / | 種類 | 説明 |
|---|---|---|
| 1 | フィールド | 他のフィールドとの演算 |
| 2 | 値 | 固定の値と演算 |
| 3 | 計算式 | 他のフィールド or 値との演算結果と演算 |
補足(現在は OR も条件分岐も書ける): 「AND のみ、OR は別ルールに分ける」
という制約は 2013 当時のもので、
現在の業務ルール エディタでは
AND / OR の切り替えと、条件ごとの分岐(Else 側の分岐)を
1 つのルール内で表現できる。
したがって「逆ルールを作る」という後述の運用も、
現在は Else 分岐で代替できる場合が多い。
業務ルール エディタで条件に合致した場合の動作を定義する。
オプション
-
エラー メッセージの表示
- フィールド内のデータが有効ではない場合、フィールドについてもエラー メッセージを設定する。
- エラー メッセージのテキストはフィールド近くにエラー アイコン(×)とともに表示される。
- エラー メッセージは、暫く経つと表示されなくなるが、エラー アイコン(×)をポイントすると再表示される。
- エラー メッセージは再評価で消える(このため、逆ルールを作成する必要はない)。
-
フィールド値の設定
フィールド値を設定する。/ 種類 説明 1 フィールド 他のフィールドと同じ値を設定 2 値 固定値を設定 3 計算式 他のフィールド or 値との演算結果を設定 -
必須項目の設定(逆ルールが必要)
フォームでフィールドを必須項目にするかどうかを変更するために使用。- [必須項目]
- [省略可能項目]
-
表示方法の変更(逆ルールが必要)
フォームにフィールドを表示するかどうかを変更するために使用。- [フィールドの表示]
- [フィールドの非表示]
-
フィールドのロック・ロック解除(逆ルールが必要)
フォームでフィールドを有効(編集可能)にするかどうかを変更するために使用。- [ロック]
- [ロック解除]
適用先のフィールド
アクションを適用する対象のフィールドを指定する。
移行メモ(正誤): 元ページの「するかどうを変更する」(3 箇所)は
「するかどうかを変更する」の脱字と判断し、補った。
補足(「逆ルールが必要」の意味): 「必須項目にする」「非表示にする」
といったアクションは、条件が False に戻ったときに自動では元に戻らない。
このため、当時は逆の条件で逆のアクションを行うルールを
もう 1 本作る必要があった。
一方「エラー メッセージの表示」は再評価のたびに消えるため、
逆ルールが不要——というのが本文の対比である。
すべての対象フォームで動作する(移植可能なビジネスロジック)。
-
メイン フォーム
- ブラウザ
- Outlook
- タブレット PC 用 DCRM クライアント(レイアウトなどが異なる)
-
モバイル フォーム
- 電話用 DCRM クライアント(スマホ ネイティブ)
- その他サポート対象外のブラウザ(通常の URL の末尾に
/mが付加)
補足: 「Outlook」は Outlook 用 Microsoft Dynamics CRM
(Outlook クライアント)を指す。
このクライアントは既に提供終了しており、
現在は Outlook 用の
Dynamics 365 App for Outlook(Web ベースのアドイン)に置き換わっている。
- 初回 or 条件に合致した場合、アクションが実行される。
- 保存時にはアクションは実行されない。
業務ルールはエンティティやフォームに関連付けできる。
エンティティ全体をスコープとする場合、
業務ルールはフォームだけでなくサーバー側でも評価される。
補足: 元ページではこの項が「・・・」のみで未執筆だったため、
上記 1 文を補った。
エンティティ スコープの業務ルールは、
Web API やインポートなどフォームを経由しない更新にも適用される点が
フォーム スコープとの決定的な違いである(ただし、
「フィールドの表示/非表示」のような UI に依存するアクションは
適用されない)。
-
業務ルールを 1 つのフォーム or すべてのフォームに適用可能。
-
フォームには、0、1、複数の業務ルールを適用できる。
-
業務ルールを複数のフォームに適用する場合は、
フォーム毎にルールのコピーを作成(名前をつけて保存)。 -
設定
業務ルール エディタの右上隅のスコープ コントロールから設定する。- 業務ルールを使用する対象となるフォームを一覧から 1 つ選択する。
- 追加のオプション[すべてのフォーム]に設定する(メイン or 簡易作成)。
-
業務ルールの作成直後は、「下書き」の状態。
-
業務ルールを有効にするには、業務ルールをアクティブ化する。
-
条件・アクション変更、スコープ変更や、削除の前には
非アクティブ化して「下書き」の状態に戻す。
- 業務ルール エクスプローラ
- 業務ルールのメニューバー
- 業務ルール エディタ
移行メモ: 元ページではこの 3 項目に「?」が付されており、
名称が確定していない旨のメモと解される。
後続の説明と照合すると、
「業務ルール エクスプローラー」(フォーム デザイナ右側のウィンドウ)と
「業務ルール エディタ」(ルールの編集画面)はいずれも実在する名称のため、
「?」を外して記載した。
- [設定]→[ソリューション]→[エンティティ]
- エンティティを展開し、[業務ルール]をクリックする。
- そのエンティティの全ての業務ルールを表示する。
- エンティティのフィールドの一覧からフィールドをダブルクリックして開く。
- 左のナビゲーション ウィンドウで[業務ルール]をクリックする。
- このフィールドを使用している業務ルールを表示する。
フォーム エディタで
-
フィールドをダブルクリックし、
[フィールドのプロパティ]ダイアログ ボックスを表示。- [業務ルール]タブをクリックして以下の業務ルールを表示する。
- このフォームがスコープに入っている。
- このフィールドが使用されている。
- [業務ルール]タブをクリックして以下の業務ルールを表示する。
-
リボンで[業務ルール]をクリック
- フォーム デザイナ右側の[業務ルール エクスプローラー]ウィンドウを表示
- このフォームがスコープに入っている業務ルールを表示する。
- 業務ルールを複数のフォームに適用する場合は、
フォーム毎にルールのコピーを作成(名前をつけて保存)。 - 既存のルール(必須項目)の逆ルール(リセット)を作成する場合に利用する。
フォーム エディタで業務ルールのスコープのフォームを開きプレビュー。
-
説明の追加は任意。
-
必要に応じて、非イベント依存関係を設定して、
システム カスタマイザーに依存関係の理解を促す。
- 本 Wiki 内
Tags: Dynamics CRM