次の方法で共有


フォームにロジックを適用するために業務ルールおよびビジネス レコメンデーションを作成する

 

対象: Dynamics 365 (online)、Dynamics 365 (on-premises)、Dynamics CRM 2013、Dynamics CRM 2015、Dynamics CRM Online、Dynamics CRM 2016

業務ルールおよびビジネス レコメンデーションを作成し、JavaScript コードの記述またはプラグインの作成を行わずにフォーム ロジックを適用できます。 業務ルールは、変化が急速で、よく使用される業務ルールを実装および保守するための、単純なインターフェイスを提供します。 それらはメイン フォームと簡易作成フォームに適用でき、タブレット PC 用 Microsoft Dynamics 365 と Outlook 用 Dynamics 365 (オンラインまたはオフライン モード) で使用できます。

条件とアクションを組み合わせることで、業務ルールを使用して以下の操作を実行できます:

  • フィールド値を設定する

  • フィールド値のクリア

  • フィールドの入力要求レベルを設定する

  • フィールドを表示または非表示にする

  • フィールドを有効化または無効化する

  • データを検証し、エラー メッセージを表示する

  • ビジネス インテリジェンスに基づくビジネス レコメンデーションを作成する

    注意

    ビジネス レコメンデーションを作成するには、Dynamics 365 用 2016 年 12 月の更新プログラム (オンラインおよび設置型) 以降を使用する必要があります。

業務ルールの作成方法により、Dynamics 365 または Dynamics CRM を使用するかが決まります。Dynamics 365 を使用している場合は、新しいドラッグ アンド ドロップ デザイナーを使用して業務ルールを作成できます。Dynamics 365 を使用するには、Dynamics 365 用 2016 年 12 月の更新プログラム (オンラインおよび設置型) が必要です。

Dynamics 365 での業務ルールまたはビジネス レコメンデーションの作成

  1. システム管理者またはシステム カスタマイザーのセキュリティ ロール、または同等のアクセス許可があることを確認してください。

    セキュリティ ロールの確認

    1. ユーザー プロファイルの表示の手順を実行します。

    2. 適切なアクセス許可を持っていない場合は、 システム管理者に問い合わせてください。

  2. [設定] > [カスタマイズ] に移動します。

  3. [システムのカスタマイズ] をクリックします。

  4. 業務ルールを作成するエンティティを開き (例えば、[取引先企業] エンティティを開く)、[業務ルール] をダブルクリックします。

    既定のソリューションでの業務ルールの作成

  5. [新規] をクリックします。

    業務ルールの設計ウィンドウはユーザーに対して既に作成された 1 つの条件で開きます。 あらゆる規則は条件から始まります。 業務ルールはその条件に基づいて 1 つ以上のアクションをとります。

    業務ルールの設計ウィンドウ

    ヒント

    既存の業務ルールを修正する場合は、その修正を行う前に、非アクティブ化する必要があります。

  6. 必要に応じて、ウィンドウの左上コーナーの説明ボックスに説明を追加します。

  7. 次に従ってスコープを設定します:

    このアイテムを選択する場合…

    スコープは次に設定されます...

    エンティティ

    すべてのフォームとサーバー

    すべてのフォーム

    すべてのフォーム

    特定のフォーム (例えば、[取引先企業] フォームです)

    このフォームのみ

  8. **条件を追加します。**より多くの条件を業務ルールに追加するには:

    1. [コンポーネント] タブから [条件] コンポーネントをデザイナーの [+] 記号にドラッグします。

      ビジネス ルールに条件を追加する

    2. 条件のプロパティを設定するには、デザイナー ウィンドウの [条件] をクリックし、画面の右側にある [プロパティ] タブでプロパティを設定します。 プロパティを設定すると、Dynamics 365 によって、[プロパティ] タブの下部に式が作成されます。

    3. 付加的な節 (AND または OR) を条件に追加するには、[プロパティ] タブの [新規] をクリックし、新しいルールを作成してからそのルールのプロパティを設定します。 [ルール ロジック] フィールドで、AND または OR として新しいルールを追加するかを指定できます。

      条件に新しいルールを追加する

    4. 条件のプロパティの設定が終了したら、[適用] をクリックします。

  9. **アクションを追加します。**アクションを追加するには:

    1. [コンポーネント] タブのアクション コンポーネントの 1 つを [条件] コンポーネントの隣にあるプラス記号へドラッグします。 条件が満たされる場合に業務ルールによるアクションを実行する場合は、アクションをチェック マークの隣にあるプラス記号にドラッグするか、または条件が満たされない場合に業務ルールによるアクションを実行する場合は、アクションを X の隣にあるプラス記号にドラッグします。

      アクションを業務ルールへドラッグする

    2. アクションのプロパティを設定するには、デザイナー ウィンドウの [アクション] コンポーネントをクリックし、[プロパティ] タブでプロパティを設定します。

    3. プロパティの設定が終了したら、[適用] をクリックします。

  10. **ビジネス レコメンデーションを追加します。**ビジネス レコメンデーションを追加するには:

    1. [コンポーネント] タブの [レコメンデーション] コンポーネントを [条件] コンポーネントの隣にあるプラス記号へドラッグします。 条件が満たされる場合に業務ルールによるアクションを実行する場合は、[レコメンデーション] コンポーネントをチェック マークの隣にあるプラス記号にドラッグするか、または条件が満たされない場合に業務ルールによるアクションを実行する場合は、X の隣にあるプラス記号にドラッグします。

    2. レコメンデーションのプロパティを設定するには、デザイナー ウィンドウの [レコメンデーション] コンポーネントをクリックし、[プロパティ] タブでプロパティを設定します。

    3. さらに多数のアクションをレコメンデーションに追加するには、[コンポーネント] タブからそれらをドラッグし、[プロパティ] タブで各アクションに対するプロパティを設定します。

      注意

      レコメンデーションを作成するとき、Dynamics 365 により単一のアクションが既定で追加されます。 レコメンデーションにおけるすべてのアクションを表示するには、[レコメンデーション] コンポーネントの [詳細] をクリックします。

    4. プロパティの設定が終了したら、[適用] をクリックします。

  11. 業務ルールを検証するには、[操作] バーの [検証] をクリックします。

  12. 業務ルールを保存するには、[操作] バーの [保存] をクリックします。

  13. 業務ルールを有効にするには、ソリューション エクスプローラーのウィンドウで業務ルールを選択し、次に [有効化] をクリックします。 デザイナー ウィンドウでは業務ルールを有効化できません。

ヒント

デザイナー ウィンドウの業務ルールを操作する時に覚えておくと役に立つヒントが次に示されています:

  • 業務ルール ウィンドウにあるすべてのスナップショットを作成するには、[操作] バーの [スナップショット] をクリックします。 たとえば、チーム メンバーから業務ルールにおけるコメントを共有し取得する場合に便利です。

  • ミニマップを使用すると、プロセスの異なる部分に素早く移動できます。 これは画面の外での複雑なプロセスがあるときに便利です。

  • 条件、アクション、ビジネス レコメンデーションを業務ルールに追加すると、Dynamics 365 により、業務ルールのコードがデザイナー ウィンドウの下部に作成されます。 このコードは読み取り専用です。

Dynamics CRM の業務ルールの作成

最初に、[設定] > [カスタマイズ] に移動するために必要な特権を持つ必要があります。 通常、これには、システム管理者 または システム カスタマイザー のセキュリティ ロールが必要です。 業務ルールをアクティブ化するには、[ビジネス ルールをアクティブ化] の特権を持つ必要があります。

注意

業務ルールは、更新されたエンティティ またはユーザー定義エンティティに対してのみ機能します。

業務ルールを表示、作成、または編集する方法は 4 つあります。

  • ソリューション > エンティティ
    既定のソリューションなどのソリューションから、すべてのエンティティの [業務ルール] ノードを検索します。

    業務ルール、メソッド 1 を作成

  • ソリューション > エンティティ > フィールド
    エンティティ フィールドを表示するときは、この属性が含まれる業務ルールだけを表示する [業務ルール] ノードを検索します。

    業務ルール、メソッド 2 を作成

  • フォーム エディター
    フォーム エディターから、リボンの [業務ルール] ボタンを使用して、右側に [業務ルール エクスプローラー] を表示できます。 これは、このフォームだけに適用されるすべての業務ルールを表示します。

    フォーム エディターからルールを作成する場合、既定のスコープはそのフォームに対応しています。詳細: 範囲の設定

    業務ルール、メソッド 3 を作成

  • フォーム エディター > フィールド
    フォームで使用されるフィールドのプロパティを表示するとき、この属性が含まれる業務ルールを表示する [業務ルール] タブが表示されます。

    業務ルール、メソッド 4 を作成

既存のルールが作成するルールに似ている場合は、そのルールを開き、[名前を付けて保存] ボタンを使用して、既存のルールを新しいルールの開始点としてコピーできます。

範囲の設定

フォームの右上にある [スコープ] フィールドを使用して、ルールのスコープを設定します。

スコープ

実行する場所

エンティティ

すべてのフォームとサーバー

すべてのフォーム

すべてのフォーム

特定のフォーム

このフォームのみ

複数の特定のフォームを選択することはできません。[すべてのフォーム] を選択した場合、ルールによって参照されるすべてのフィールドがフォームに含まれているかぎり、ルールはすべてのメイン フォームと簡易作成フォームに適用されます。 フォーム エディターを使用して業務ルールを新規に作成する場合、既定のスコープはそのフォームだけです。

サーバー側業務ルールと IF-Else および AND/OR ロジックのサポート

以前は、個々のクライアントの業務ルールを評価する機能がありました。 サーバーの業務ルール ロジックを評価し、すべてのクライアントに適用するには、開発と維持に費用がかかるプラグインが必要でした。 業務ルールのスコープをエンティティ レベルで設定すると、サーバー上で一度業務ルールを評価し、コードを記述せずにすべてのクライアントに適用する機能が提供されます。 よく使用されるシナリオのロジックをプラグインからエンティティ レベルの業務ルールに移行できます。 また、業務ルールの既定値をサポートしました。 たとえば、"Contoso" がアメリカ国内のみで取引する場合、新しい潜在顧客の作成時に国/地域を自動的に ”米国” に設定するという、単純な業務ルールを実装できます。

注意

スコープが 1 つのエンティティに設定され、フォームを使用するレコードを作成または編集する場合、そのルールはクライアント側で実行されますが、後で再び、サーバーで実行されます。 これにより、スコープを 1 つのエンティティに設定した場合、フィールドに対して循環参照を作成できなくなります。 たとえば、利用限度額 = 利用限度額 + 1000を設定することはできません。その理由は、クライアント側の値を一度増加してから、サーバー側で再度実行を試みることになるからです。

複雑なビジネス シナリオでは、AND 論理演算子を使用して評価される複数の業務ルールを使用する必要がありました。 すべての条件は、アクションが適用される前は true である必要がありました。If-Else または AND/OR はサポートされていませんでした。 現在はこの機能が追加されたことにより、少ない労力で複雑な業務ルールが作成できるようになりました。 次の例は、If-Else ロジックを使用した業務ルールです。

Dynamics CRM の If Else ロジックでの業務ルール

注意が必要ないくつかの制約を以下に示します。

  • 入れ子になった If-Else 文はサポートされません。

  • 条件内の式のグループ化はサポートされません。

  • AND または OR のどちらかを使用して式を組み合わせることはできますが、それらの両方を使用することはできません。

条件の構成

アクティブ化した業務ルールを変更する場合は、その編集を行う前に、非アクティブ化する必要があります。

条件を追加するには、[+] アイコンをクリックし、新しい条件行に設定される既定値が表示されます。[フィールド] を設定するフィールド名を入力し、次に適切な [演算子] を選択します。 演算子オプションは、フィールドのデータの種類に応じて変更されます。

条件内で参照されるフィールドが変更されると、条件が常に確認されます。

次の 3 つの異なる種類の条件を選択できます。

  • フィールド
    フォーム フィールドの値の間で比較を行うには、この種類を使用します。


  • フォーム フィールドの値と入力する値を比較するには、この種類を使用します。

  • 計算式
    このオプションは、種類が数値データまた日付データの場合にのみ表示されます。 これは、テキストを含むフィールドの場合は表示されません。 別のフォームのフィールドの値かまたは入力した値のいずれかを使用できる単純計算の結果を比較するには、この種類を使用します。

ルールの入力または編集を終了するとき、ルールを保存するには [チェック マーク] アイコンを、変更を破棄するには [(x)] アイコンを選択します。 以前保存した条件を削除するには、カーソルを条件の上に置き、[削除] ボタンを選択します。

アクションの構成

アクションを追加するには、[追加] ボタン [+] を選択し、以下のオプションを使用します。

  • エラー メッセージの表示
    フィールド内のデータが有効でない場合、そのフィールドに対してエラー メッセージを設定するには、このアクションを使用します。 メッセージに指定するテキストは、そのフィールドの近くに、エラー アイコンといっしょに表示されます。

    ビジネス ルール、エラー メッセージの表示

    このメッセージが表示されているかぎり、レコードは保存できません。 フィールドのデータがルールの条件セットに従って修正されると、メッセージは消え、レコードは保存できます。

  • フィールド値の設定
    [フィールド][種類] の順に選択します。 次の 3 つの種類があります。

    • フィールド
      別のフィールドの値でフォーム フィールドの値を設定するには、この種類を使用します。


    • 入力する値でフォーム フィールドの値を設定するには、この種類を使用します。

    • 計算式
      このオプションは、種類が数値データまた日付データの場合にのみ表示されます。 これは、テキストを含むフィールドの場合は表示されません。 別のフォームのフィールドの値かまたは入力した値のいずれかを使用する可能性のある単純計算の結果に値を設定するには、この種類を使用します。

  • 必須項目の設定
    フィールドの入力要求レベルを変更するには、この種類を使用します。 オプションは、[省略可能項目][必須項目] です。 これを推奨項目に設定するオプションはありません。

  • 表示方法の設定
    フィールドをフォームに表示するかどうかを変更するには、この種類を使用します。 オプションは、[フィールドを表示][フィールドを表示しない] です。

  • フィールドのロックまたはロック解除
    フォームのフィールドを有効にするかどうかを変更するには、この種類を使用します。 オプションは [ロック][ロック解除] です。 フィールドがロックされると、ユーザーはフィールドの値は編集できません。

アクションを定義した後に、カーソルをアクションの上に置いたときに利用できるオプションを使用して、その順序を変更したり、アクションを削除できます。

説明の設定

説明の設定はオプションです。 説明は、業務ルール エディター内の場所以外には表示されません。 しかし、ルールが実行することになっている内容の説明と、ルールが追加された理由の説明を含めることはいい考えだと思われます。

業務ルールのテストとライセンス認証を行う

作成した業務ルールを使用できるようにするには、その前に、業務ルールをアクティブ化する必要があります。 業務ルールは、アクティブ化する前にテストする必要があります。 フォーム エディターの [プレビュー] ボタンを使用して、業務ルールをテストできます。

フィールド値の設定またはクリアの例

いくつかの例を考えてみます。 最初ルールによって、即時の購入については、5% 値引きを適用します。 2 番目のルールによって、購入の時期が不明の場合は、すべての値引きを解除します。

次のルール定義は、即時の購入については 5% の値引きにフィールド値を設定する方法を示しています。

5% の割引に値を設定するビジネス ルール

次のルール定義は、フィールド値をクリアする方法を示しています。購入時期が不明の購入についてはすべての値引きを解除します。

フィールド値をクリアする業務ルール

制限

業務ルールは、一般的なアクションに対応することを目的としています。 開発者がフォーム スクリプトを使用して実行できる内容に比較すると、業務ルールには制約があります。 ただし、業務ルールがフォーム スクリプトに取って代わる意図はありません。

業務ルールの使用には次のいくつかの制約があります。

  • 業務ルールは、フォームが読み込まれるときと、フィールドの値が変更されたときだけ実行されます。 ルールのスコープがエンティティ レベルで設定されていない場合、レコードの保存時に業務ルールは実行されません。

  • 業務ルールはフィールドに対してのみ機能します。 フォーム内のタブやセクションなどの他の可視要素とのやり取りが必要な場合は、フォーム スクリプトを使用する必要があります。

  • 業務ルールを使用してフィールド値を設定すると、そのフィールドの OnChange イベント ハンドラーは実行されません。 これは、無限ループの原因となる循環参照の可能性を減らすためです。

  • 業務ルールは、フォーム上にないフィールドを参照する場合は実行されません。 エラー メッセージはありません。

  • タイム ゾーン用、期間用、または言語用の書式を使用する数値フィールドの全体が、条件またはアクションに対するルール エディターに表示されないので、業務ルールでは使用できません。

  • 業務ルールには 10 を超える if-else 条件を追加できません。

  • タブレット PC 用 Microsoft Dynamics 365 では、タブレット PC 用 Dynamics 365 が開くときに業務ルールがダウンロードされてキャッシュされます。 業務ルールの変更は、タブレット PC 用 Dynamics 365 がクローズして再オープンされるまで適用されません。

  • 検索フィールドの値を設定するとき、フォームで設定される主フィールドの値のテキストは、ルール定義内に表示されるテキストと常に一致します。 そのテキストが検索変更内で設定したレコードの主フィールドの値を示す場合、ルールによって設定された値は、ルールで定義された主フィールドの値のテキストの一部を引き続き使用します。 これを修正するには、現在のプライマリ名フィールドの値を使用するようにルール定義を更新します。

    検索に設定する値に以下の 3 つの部分があることを理解しておくと便利です。

    • Name: フォームに表示される主フィールド値のテキスト。

    • Id: レコードの一意の識別子。 これは保存されたデータです。 これはフォームに表示されません。

    • LogicalName: contactaccount、または opportunity などのエンティティ名。

    ルールはこの値の 3 つの部分すべてを設定します。 特定のレコードの Id 値は変化しませんが、Name の値は変化することがあります。

    たとえば、"古い名前" の [氏名] を持つ取引先担当者の検索を設定するルールを定義する場合、誰かが取引先担当者の [氏名] を "新しい名前" に変更しても、このテキストは業務ルールで設定されたときに検索内に表示される Name です。 検索の Id の値は目的のレコードに正しくセットされますが、Name (これは保存されません) は現在の [氏名] ではなくルール定義の値を反映します。

ルールからアクションを除去

エラー メッセージの表示の場合を除き、適用した可能性のあるアクションを除去する別の業務ルールを組み込む必要があります。 たとえば、次のような取引先企業エンティティ ルールを使用しているとします。

[優先する連絡方法] が [電話] の場合、
[勤務先電話番号] を [必須項目] として設定する

これは、[優先する連絡方法] フィールドが [電話] に設定されているときはいつでも動作します。 しかし、[優先する連絡方法] フィールドが後で他の値に変更された場合、[電話] フィールドは [必須項目] のままです。 このアクションを取り除くには、次のロジックを適用する別のルールを含める必要があります。

[優先する連絡方法] が [電話] でない場合、
[勤務先電話番号] を [省略可能項目] として設定する

[エラー メッセージの表示] アクションは、エラー メッセージの設定に使用される条件を自動的に評価して、条件が true でなくなった場合はエラー メッセージを除去すると言う理由で、他のアクションとは異なっています。

業務ルールで使用されるエラー メッセージのローカライズ

組織で使用する複数の言語が存在する場合は、設定したエラー メッセージのローカライズが必要になると思われます。 メッセージを設定するたびに、ラベルがシステムによって生成されます。 組織で翻訳をエクスポートする場合、メッセージのローカライズされたバージョンを追加し、それらのラベルを Microsoft Dynamics 365にインポートできます。これにより、基本言語以外の言語を使用するユーザーは翻訳されたメッセージを表示することができます。

関連項目

プロセスに関する一般的なタスクを通してスタッフをガイド
ビジネス プロセス フローの作成
モバイル タスク フローを作成する