D365カスタマイズの壁と突破法:ohyaの実践記【#008】 〜ノーコードで入力制御!ビジネスルールの魅力と落とし穴〜
こんにちは、ohyaです。
今回は、自動化機能シリーズの第2弾として「ビジネスルール(Business Rule)」を取り上げます。
PL-200の勉強中にも、実務でも「これでできること」と「できないこと」の境目がよく話題になる機能です。
🛠 今回の壁
『フォームで条件付き入力制御をしたいけど、JavaScriptを書くのはちょっと…』
実務でよくあるのが、
- ・条件によって必須項目を切り替えたい
- ・選択肢を自動で入力したい
- ・入力ミスをその場で防ぎたい
こういうとき、昔はJavaScriptでカスタマイズするのが定番でした。
でもコードを書くのが難しかったり、保守の手間が大きいのが悩み…。
そこで登場するのが、ノーコードでフォーム制御ができる「ビジネスルール」です。
-
-
ビジネスルールとは?
ビジネスルールは、フォーム(クライアント側)で動く条件付き処理をノーコードで作成できる機能です。
ユーザーがフォームを開いたときや値を変更したときに、フィールドの表示・必須化・値設定などを自動で行えます。特徴
- ・ノーコードで設定可能(Power Appsの画面から作成)
- ・フォームとサーバーの両方で実行可能(オプション)
- ・即時反映されるため、ユーザー体験が向上
- ・外部システム連携や複雑処理は不可
-
2.主なアクション
- ・フィールドの表示/非表示
- ・フィールドの必須化/任意化
- ・フィールド値の設定(固定値や他フィールドの値)
- ・エラーメッセージの表示
- ・フィールドのロック/ロック解除
💡 PL-200ポイント
試験では「この要件はビジネスルールで実現可能か?」という問題がよく出ます。外部API呼び出しやメール送信などは不可。-
3.ビジネスルールにおけるスコープ
ここでいうスコープは、ワークフローのスコープとは意味が違います。
違いのざっくり比較
-
- ビジネスルールのスコープ種類
- エンティティ(Entity)スコープ
- ・サーバー側実行を含むすべての更新に適用
- ・フォーム以外(API、インポート等)からの更新にも効く
- 特定フォーム(Form)スコープ
- ・指定したフォームでのみ動作
- ・サーバー側では動作せず、ユーザー操作時のみ適用
-
4.実務例
例1:条件による必須化
- ・条件:商談のステータス=「成約」
- ・アクション:成約日フィールドを必須に設定
例2:入力補助
- ・条件:都道府県=「大阪府」
- ・アクション:営業所フィールドに自動で「大阪支社」を設定
-
5.サーバー側で動かす場合
ビジネスルールは、サーバー側実行を有効化すると、レコードがAPIやインポートで更新される場合にも適用されます。
ただし、複雑なロジックやパフォーマンス面では制約があります。-
6.ワークフローとの違い
-
7.落とし穴
- ・複数のビジネスルールが競合すると、最後に評価されたルールが優先される
- ・サーバー側実行時は、フォーム上の見た目変化はリアルタイムに見えない
- ・大量の条件分岐はパフォーマンス低下の原因になる
-
8.まとめ
- ・ビジネスルールは、ノーコードで即時性の高い入力制御ができる便利機能
- ・スコープは実行範囲(フォーム or エンティティ)を決める
- ・外部連携や複雑処理はできないので、目的に応じてワークフローやクラウドフローと使い分ける
- ・PL-200試験では「できること/できないこと」の区別が重要
✍️ 次回予告
次回は「ビジネスプロセスフロー」を取り上げます。
業務の流れを可視化して、誰でも同じ手順で進められる仕組みを作ります! - エンティティ(Entity)スコープ