Tech Dynamics 365 (CRM)

Microsoft Dynamics 365 (CRM) を中心とした技術情報を提供しています。

業務ルールをJavaScriptから実行させる方法

こんにちは。

今回は、業務ルールをJavaScriptから実行させる方法をご紹介します。

説明にあたり、取引先企業エンティティに以下の様な業務ルールを作成しました。
・取引先企業名が設定されていたら、フリガナ(取引先企業名)を入力必須にする
f:id:westcoastline:20200205112208p:plain


業務ルールをJavaScriptから実行

業務ルールを作成する際、一番最初に必ずトリガ(条件コンポーネント)を設定する必要があるかと思いますが、このトリガをJavaScript側から強制的に発火させることで、業務ルールが実行されるようになります。

今回のケースだと「取引先企業名が設定されていたら」という部分がトリガとなり、これは「取引先企業名が変更された時」と同義です。

そのため、以下の様なJavaScriptを作成してイベントハンドラーに登録しておけば、取引先企業名を画面上から変更していない場合でも、変更があったと見なされて業務ルールが発動します。

function FireBusinessRule() {
    Xrm.Page.getAttribute("new_name").fireOnChange();
}

※上記JavaScriptが実行され、業務ルールでフリガナ(取引先企業名)が必須項目になった画面
f:id:westcoastline:20200205120007p:plain


以前の記事で、業務ルールをJavaScriptに置き換える方法をご紹介しましたが、この方法であればそもそも業務ルールを作成する必要がなくなるので、今回のような処理を実装するケースはほとんどなくなるかもしれません。

ただ、業務ルールをJavaScriptに置き換えてしまうことのデメリットとして、画面上からGUI操作で簡単に変更ができなくなってしまうということが挙げられるため、業務ルールは使いつつ、JavaScriptから実行させるようにしたいというようなケースがあれば、今回の手順を参考にされてみてはいかがでしょうか。

Dynamics 365 のトライアル環境を久しぶりに払い出してみて気づいたのですが、「業務ルール」って、「ビジネスルール」に名称が変わったのですね…。
過去の記事に記載のある「業務ルール」っていう文言を「ビジネスルール」に書き直した方がいいのか、悩ましいところです。