テーブルのビジネス ルールの作成

業務ルールおよびビジネス レコメンデーションを作成し、コードの記述またはプラグインの作成を行わずにロジックおよび検証を適用できます。業務ルールは、変化が急速で、よく使用される業務ルールを実装および保守するための、単純なインターフェイスを提供します。

重要

テーブルに対して定義された業務ルールは、テーブルがアプリで使用される場合、キャンバス アプリ および モデル駆動型アプリ の両方に適用されます。 現時点では、キャンバス アプリで使用できない業務ルールもあります。 詳細については、キャンバス アプリとモデル駆動型アプリの違いを参照してください

モデル駆動型アプリでは、すべての ビジネスルール アクションが 編集可能なグリッド で使用できるわけではありません。 テーブルベースのビュー ページ の場合、推奨事項を作成できません。 編集可能な サブグリッド はビジネス ルールをサポートしません。 ビジネス ルールは、他のタイプの データセット コントロールでは機能しません。

モデル駆動型アプリのフォームに適用される業務ルールを定義するには、モデル駆動型アプリ フォームでロジックに適用するための業務ルールを作成するを参照してください。

ビジネス ルールでは、条件とアクションを組み合わせることにより、次のいずれも実行できます。

  • 列の値を設定する
  • 列の値をクリアする
  • 列の要件レベルを設定する
  • 列を表示または非表示にする
  • 列を有効化または無効化する
  • データを検証し、エラー メッセージを表示する
  • ビジネス インテリジェンスに基づいてビジネス レコメンデーションを作成します。

キャンバス アプリおよびモデル駆動型アプリ間の違い

モデル駆動型アプリのフォームは業務ルールですべての操作が使用できますが、現時点でキャンバス アプリは業務ルールですべての操作を使用できるわけではありません。 以下の操作はキャンバス アプリでは使用できません

  • 列を表示または非表示にする
  • 列を有効化または無効化する
  • ビジネス インテリジェンスに基づいてビジネス レコメンデーションを作成します。

ビジネスルールによる列タイプのサポート

ビジネス ルールは、テキスト、数値、選択肢、日付、検索、所有者、画像など、ほとんどの列タイプで機能します。 ただし、ビジネス ルールは次の列タイプでは機能しません。

  • 選択肢 (複数選択)
  • ファイル
  • 言語

ビジネス ルールの作成

  1. 左側のナビゲーション ウィンドウで Power Apps にサインインし、テーブルを選択します。 項目がサイド パネル ウィンドウに表示されない場合は、…さらに表示 を選択して、目的の項目を選択します。

  2. 業務ルールを作成するテーブルを開き (例えば、取引先企業 テーブルを開く)、ビジネス ルール タブをダブルクリックします。

  3. ビジネス ルールの追加 を選択します。

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

    チップ

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

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

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

    このアイテムを選択する場合… スコープは次に設定されます...
    エンティティ モデル駆動型アプリフォームおよびサーバー
    すべてのフォーム モデル駆動型アプリ フォーム
    特定のフォーム (例えば、取引先企業フォームです) そのモデル駆動型アプリ フォームのみ

    チップ

    キャンバス アプリを構築すると、スコープとしてテーブルを使用する必要があります。

  6. 条件を追加します。 業務ルールにそのほかの条件を追加するには:

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

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

    2. 条件のプロパティを設定するには、デザイナー ウィンドウで 条件 コンポーネントを選択し、画面右側の プロパティ タブでプロパティを設定します。 プロパティを設定すると、 Microsoft Dataverse が プロパティ タブの下部に式を作成します。

    3. 追加の句 (AND や OR) を条件に追加するには、プロパティ タブの 新規 を選択し、新たなルールを作成してからルールのプロパティを設定します。 ルール ロジック 列で、AND または OR として新しいルールを追加するかを指定できます。

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

    4. 条件のプロパティの設定が終了したら、適用を選択します。

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

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

      アクションをビジネス ルールへドラッグする。

    2. アクションのプロパティを設定するには、デザイナー ウィンドウでアクション コンポーネントを選択し、画面右側のプロパティ タブでプロパティを設定します。

    3. プロパティ設定の完了後は、適用 を選択します。

  8. ビジネス レコメンデーションを追加する (モデル駆動型のみ)。 ビジネス レコメンデーションを追加するには:

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

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

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

      注意

      レコメンデーションを作成すると、既定で Dataverse が単一のアクションを追加します。 レコメンデーションにおけるすべてのアクションを表示するには、レコメンデーション コンポーネントの 詳細 を選択します。

    4. プロパティ設定の完了後は、適用を選択します。

  9. ビジネス ルールを検証するには、アクション バーで検証を選択します。

  10. ビジネス ルールを保存するには、[操作] バーの保存を選択します。

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

    チップ

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

    • ビジネス ルール のすべてのスナップショットを作成するには、アクション バーの スナップショット を選択します。 これは、チーム メンバーとビジネス ルールを共有して、コメントをもらう場合などに便利です。
    • ミニマップを使用すると、プロセスの異なる部分に素早く移動できます。 これは画面の外での複雑なプロセスがあるときに便利です。
    • 条件、アクション、ビジネス レコメンデーションを業務ルールに追加すると、Dataverse により、業務ルールのコードがデザイナー ウィンドウの下部に作成されます。 このコードは読み取り専用です。

例: 30 日より古いタスク用にビジネス ルールを作成します

このビジネス ルールの例では、タスクが 30 日以上経過している場合に、タスクの説明フィールドにメッセージを表示する条件を作成します。

  1. 左側のナビゲーション ウィンドウで、Power Apps にサインインし、テーブルを選択します。 項目がサイド パネル ウィンドウに表示されない場合は、…さらに表示 を選択して、目的の項目を選択します。
  2. タスク テーブルを開き、ビジネス ルール 領域を選択します。
  3. ビジネス ルールの追加 を選択します。
  4. ビジネス プロセス フロー キャンバスで 新規条件 を選択し、次のプロパティを入力または選択します:
    • 表示名: タスクが 30 日以上経過しています
    • エンティティ: タスク
    • ルール 1
      • ソース: エンティティ
      • フィールド: 作成日
      • オペレーター: +
      • 種類::
      • : 30
    • 条件式 (自動作成): (作成日が [作成日+ 30] より大きい)
  5. 適用する を選択します。
  6. 追加>エラー メッセージの表示を追加を選択します。
  7. エラー メッセージのプロパティを表示するタブで、次のプロパティを入力します:
    • 表示名: タスクが 30 日以上経過しています
    • エンティティ: タスク
    • エラー メッセージ:
      • フィールド: 説明
      • メッセージ: タスクが 30 日以上経過しています!
  8. 適用する を選択します。
  9. 保存 を選びます。

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

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

一般的な問題

このセクションでは業務ルールの使用時に発生する可能性がある一般的な問題について説明します。

複合属性は統一インターフェイス アプリでサポートされません

複合属性 を使用する操作や条件は統一インターフェイスに基づくアプリで対応していません。 代わりに複合属性を構成する属性で操作や条件を使用できます。 たとえば 氏名 (fullname) 属性を使用する代わりに (firstname) と (lastname) 属性を使用できます。

単一テーブル上の多数のビジネス ルールがパフォーマンスに影響を与える

テーブル上の新規または既存のビジネス ルールは、ルールがアクティブ化されるときにパフォーマンスを低下させる場合があります。 Power Platform は現在、1 つのテーブルに対して最大 150 のビジネス ルールがサポートされています。 ビジネス ルールが 150 を超えると、パフォーマンスが低下する場合があります。 この制限には、クライアント側 (JavaScript) とサーバー側 (同期プラグインとして生成された XAML) の両方のビジネス ルールが含まれます。 Dataverse を使用してパフォーマンスの問題を回避するには、1 つのテーブルに対して 150 を超えるビジネス ルールを作成しないことをお勧めします。

フォームにビジネス ルールは生成されていませんか?

ビジネス ルールで参照されるフィールドがフォームと共に含まれていないため、ビジネス ルールが実行されない可能性があります。

  1. ソリューション エクスプローラーを開きます。 目的のエンティティを展開してからフォームを選択します。

  2. 目的のフォームを開いてから、フォーム デザイナー リボン上でビジネス ルールを選択します。

  3. フォーム デザイナーで、ビジネス ルールを開きます。

  4. ビジネス ルール デザイナーで各条件およびアクションを選択して、各条件およびアクションで参照されるすべてのフィールドを検証します。

    エンティティ内に存在するビジネス ルールで参照されるフィールド。

  5. また、ビジネス ルールで参照される各フィールドがフォーム上にも含まれていることを確認します。 含まれていない場合、不足しているフィールドをフォームに追加します。

    フォーム上のアカウント名称フィールド。

DateOnly 列の UTC タイムゾーン

DateOnly 列を使用してビジネス ルールを構成する場合、ユーザーが設定したタイム ゾーンに関係なく、日付はデフォルトで UTC タイム ゾーンになります。 DateOnly 値がローカル時間の設定と一致することを期待している場合、予期しない結果が生じる可能性があります。

推奨される処理: タイム ゾーン非依存設定 DateOnly 列をタイム ゾーンから独立させ、ビジネス ルールで構成された日付 (たとえば UTC) と同じ日付を表示するには、タイム ゾーン非依存設定を有効にします。 日付処理設定の構成の詳細については、日付と時刻の列の動作を指定する を参照してください。

よくあるご質問 (FAQ)

業務ルールは読み取り専用フォームのフィールドのロックを解除できますか。

  • はい、業務ルールはフィールドをロック解除して、読み取り専用フォームのアクションを編集可能にします。

実行していない業務ルールはどうトラブルシューティングしますか。

onLoad スクリプト が変更された場合、 ビジネス ルールに影響しますか?

  • いいえ、onload スクリプトが実行される前に実行されます。

ビジネス ルールを更新すると、それは既存のすべてのレコードに対して実行されますか?

  • いいえ。 ビジネス ルールはクライアントで実行されます。 たとえば、ユーザーがフォームを開いたときや、開いているフォームのフィールド値が変更されたときに実行されます。 それらは Dataverse 内部で実行されません。

参照

Microsoft Dataverse でビジネス ロジックを適用する