トピックス

知識創造研究室 by CRM(xRM)

D365カスタマイズの壁と突破法:ohyaの実践記【#008】 〜ノーコードで入力制御!ビジネスルールの魅力と落とし穴〜

こんにちは、ohyaです。

今回は、自動化機能シリーズの第2弾として「ビジネスルール(Business Rule)」を取り上げます。
PL-200の勉強中にも、実務でも「これでできること」と「できないこと」の境目がよく話題になる機能です。

🛠 今回の壁

『フォームで条件付き入力制御をしたいけど、JavaScriptを書くのはちょっと…』

実務でよくあるのが、

  • ・条件によって必須項目を切り替えたい
  • ・選択肢を自動で入力したい
  • ・入力ミスをその場で防ぎたい

こういうとき、昔はJavaScriptでカスタマイズするのが定番でした。
でもコードを書くのが難しかったり、保守の手間が大きいのが悩み…。

そこで登場するのが、ノーコードでフォーム制御ができる「ビジネスルール」です。

    1. ビジネスルールとは?

    ビジネスルールは、フォーム(クライアント側)で動く条件付き処理をノーコードで作成できる機能です。
    ユーザーがフォームを開いたときや値を変更したときに、フィールドの表示・必須化・値設定などを自動で行えます。

    特徴

    • ・ノーコードで設定可能(Power Appsの画面から作成)
    • ・フォームとサーバーの両方で実行可能(オプション)
    • ・即時反映されるため、ユーザー体験が向上
    • ・外部システム連携や複雑処理は不可

     

    1. 2.主なアクション

    • ・フィールドの表示/非表示
    • ・フィールドの必須化/任意化
    • ・フィールド値の設定(固定値や他フィールドの値)
    • ・エラーメッセージの表示
    • ・フィールドのロック/ロック解除

    💡 PL-200ポイント
    試験では「この要件はビジネスルールで実現可能か?」という問題がよく出ます。外部API呼び出しやメール送信などは不可。

    1. 3.ビジネスルールにおけるスコープ

    ここでいうスコープは、ワークフローのスコープとは意味が違います。
    違いのざっくり比較

  1. ビジネスルールのスコープ種類
    1. エンティティ(Entity)スコープ
      • ・サーバー側実行を含むすべての更新に適用
      • ・フォーム以外(API、インポート等)からの更新にも効く
    2. 特定フォーム(Form)スコープ
      • ・指定したフォームでのみ動作
      • ・サーバー側では動作せず、ユーザー操作時のみ適用

     

    1. 4.実務例

    例1:条件による必須化

    • ・条件:商談のステータス=「成約」
    • ・アクション:成約日フィールドを必須に設定

    例2:入力補助

    • ・条件:都道府県=「大阪府」
    • ・アクション:営業所フィールドに自動で「大阪支社」を設定

     

    1. 5.サーバー側で動かす場合

    ビジネスルールは、サーバー側実行を有効化すると、レコードがAPIやインポートで更新される場合にも適用されます。
    ただし、複雑なロジックやパフォーマンス面では制約があります。

     

    1. 6.ワークフローとの違い

    1. 7.落とし穴

    • ・複数のビジネスルールが競合すると、最後に評価されたルールが優先される
    • ・サーバー側実行時は、フォーム上の見た目変化はリアルタイムに見えない
    • ・大量の条件分岐はパフォーマンス低下の原因になる

     

    1. 8.まとめ

    • ・ビジネスルールは、ノーコードで即時性の高い入力制御ができる便利機能
    • ・スコープは実行範囲(フォーム or エンティティ)を決める
    • ・外部連携や複雑処理はできないので、目的に応じてワークフローやクラウドフローと使い分ける
    • ・PL-200試験では「できること/できないこと」の区別が重要

     

    ✍️ 次回予告

    次回は「ビジネスプロセスフロー」を取り上げます。
    業務の流れを可視化して、誰でも同じ手順で進められる仕組みを作ります!

     

この記事を書いた人
ohya

はじめまして! 2025年3月にIT業界に飛び込んだ、まだまだ勉強中の新人です。 プログラミングもITもまったくの未経験からのスタートですが、 「日々勉強・日々成長・日々感謝」を大切にしながら、毎日コツコツ頑張っています。 わからないことだらけですが、その分、学ぶ楽しさもたくさん! 少しずつでも前に進んで、誰かの役に立てるエンジニアを目指しています。 どうぞよろしくお願いします!

同じカテゴリの記事