ビジネス ルールを定義する - 導入
ビジネス ルールは、コードを記述せずに Dataverse テーブルに関連付けられる宣言型のロジックと検証です。
ビジネス ルールを使用すると、次のことができます。
列の値を設定する。
列の要件レベルを変更する。
データを検証し、エラー メッセージを表示する。
モデル駆動型アプリのフォームで列のプロパティを変更する。
モデル駆動型アプリのフォームでユーザーにレコメンデーションを提示する。
ビジネス ルールによって定義されたロジックは、クライアント側でモデル駆動型アプリのフォーム内で適用することも、Dataverse 行の作成時または更新時にサーバー側で適用することもできます。 クライアント側の場合、ユーザーがフィールドを変更すると、ルールがアプリ内で即座に適用されます。 サーバー側の場合、行が保存され、トランザクション中にロジックが実行されてから、データがデータベースに保存されます。
ビジネス ルールはサーバー側で機能できるため、ルール内の条件とアクションは、モデル駆動型アプリ、キャンバス アプリ、Power Pages サイト、Power Automate クラウド フロー、または Dataverse API によって変更された Dataverse データに適用されます。
ビジネス ルールがどこで機能するかを決定するために、ビジネス ルールのスコープを指定する必要があります。
スコープ
ビジネス ルールのスコープは、ビジネス ルールのロジックがいつ適用されるかを定義します。
スコープ | 適用対象 |
---|---|
エンティティ (テーブル) | すべてのモデル駆動型メイン フォーム (クライアント側) とデータの変更 (サーバー側)。 これは、新しいビジネス ルールを作成するときのデフォルトです。 |
すべてのフォーム | すべてのモデル駆動型メイン フォームと簡易作成フォーム |
特定のフォーム | 特定のモデル駆動型メイン フォームのみ |
ヒント
ビジネス ルールをキャンバス アプリで使用するには、スコープをエンティティに設定する必要があります。
ビジネス ルールとモデル駆動型アプリのフォーム
ビジネス ルールは当初、モデル駆動型アプリのフォームにおける単純な JavaScript に代わるものとして開発されました。 よくある要件として、ユーザーが他の列で入力または選択した値に基づいて、実行時にフォーム上のプロパティと値の列を操作する必要があります。
モデル駆動型アプリのフォームでは、ビジネス ルールによって次のことができます。
列を表示するか、非表示にする
列を編集可能または読み取り専用にする
列の要件レベルを変更する
ユーザーにレコメンデーションを提示する
列内の値を設定またはクリアする
重要
ビジネス ルールで実行できるのはフォーム上のテーブル列に対するアクションのみであり、セクションやタブのプロパティを変更することはできません。
これらのアクションは、次のタイミングで実行されます。
フォームが開かれたとき。
ルールによって参照される列の値が変更されたとき。
注
ビジネス ルールは、フォームの保存イベントでは適用されません。
ビジネス ルールと JavaScript によるクライアントサイド スクリプトのどちらを使用するか
モデル駆動型アプリのフォームで JavaScript を使用すると、ビジネス ルールによって実行できるアクションの多くを実行できますが、クライアントサイド スクリプトではずっと多くのことを実現できます。
JavaScript には、タブ、セクション、サブグリッドなど、あらゆる種類のフォーム コントロールを操作するための完全なアクセス権があります。 ビジネス ルールのアクションはテーブル列のみに制限されます。
ビジネス ルールがアクセスできるのはフォーム/テーブルの列のみであり、一対多または多対一のリレーションシップの行にはアクセスできません。 クライアントサイド スクリプトでは、Web API を使用してこれらのリレーションシップの行にアクセスできます。
ビジネス ルールの式は、2 つの列の単純な加算、減算、除算、または乗算に制限されています。
レコメンデーションはビジネス ルールでのみ使用できます。
サーバー側ビジネス ルール
ビジネス ルールのスコープがエンティティに設定されている場合、ルールの条件は行の保存時に評価されます。 このロジックは、データベース トランザクションの前処理ステージで実行されます。 エラー メッセージを表示するビジネス ルールを使用すると、データベース トランザクションの保存とロールバックが行われなくなります。
注
ルールがサーバー側で実行される場合、モデル駆動型アプリにのみ適用されるアクションは無視されます。