[SFDC vs D365]入力規則、ビジネスルールの作成

レポート系も一通り完了したため、ユーザインタフェースに対してはだいぶ出来上がってきました。
まだまだハリボテシステムなので、そろそろビジネスロジック側に手を加えていきます。

スポンサーリンク

今回の作成対象は?

今回は入力規則についての移行を試みたいと思います。
入力規則を使うことによって、入力時に制約をつけることができ、ユーザの誤入力を自動的に無くし、データの精度を上げることができます。
Dyamicsではビジネスルールと呼ばれており、その中で入力規則を設定することができます。

今回は所属選手に対して、入力規則を設けることとします。
「育成選手は背番号が3桁でなければならない」というルールが存在するため、それを入力規則、ビジネスルールで作成してみます。
入力規則とビジネスルール

入力規則=ビジネスルールではない

ここで、注意点として、入力規則=ビジネスルールではありません
ビジネスルールの中に、入力規則を設定すること以外に項目に値を設定したり、表示項目を切り替えたりと色々なことができるため、入力規則⊂ビジネスルール(部分集合)といった表現が適切かと思います。

入力規則、ビジネスルールの作成

SFDC:入力規則の作成

では、Salesforce側の入力規則を作成。
[設定]→[カスタマイズ]→[取引先責任者]→[入力規則]から[新規]ボタンで作成します。
Salesforceの入力規則作成

入力規則の設定はこのように入力します。
エラー数式条件には、エラーが発生する条件を記入するので間違えないように。
育成選手にチェックがついている時に、背番号の桁数が3桁未満であればエラーを出すようにしています。
Salesforce入力規則設定
保存および有効化して、ロジックの確認。
Salesforceの入力規則の動作確認

これでバッチリです。

D365:ビジネスルールの作成

Dynamics側のビジネスルールでの入力規則ですが、結論から言うと、ビジネスロジックルールだけではできません
出来ない理由としては、桁数をチェックする機能がないからです。
そのため、条件を再考する必要があります。

そこで考えたのが、入力された背番号に対して、以下のような計算フィールドを設けること。
この計算フィールドは、背番号の先頭2桁を削っており、3桁であればトリムしたものでも値が設定されているのでそれを条件としてしまえばと言う思惑です。
入力チェック用に計算フィールドを作成

計算フィールドを作成し、ビジネスルールを作成しました。

ソリューションの[エンティティ]→[所属選手]→[ビジネスルール]の[新規]から
Dynamicsのビジネスルール作成

条件はこのように設定します。
先ほど作成した計算フィールドの値の有無を見ることで3桁か否かを確認しています。
ビジネスルールでのエラー設定

あと、目立たない場所ですが、重要なのが右上のスコープ欄。
フォームに設定するか、エンティティ全体に設定するかが選べます。
ビジネスルールのスコープはエンティティに設定

フォームに設定した場合、画面(対応したフォーム)から入力した時にビジネスルールが適用されます。
逆に言うと、画面から入力しないケースでは適用されません
そのため、Excelなどからインポートした場合は適用されずにビジネスロジックが無視された入力値が入ることになります。
スコープを「エンティティ」にすればフォーム、インポートのどちらからもルールが適用されるので、基本はエンティティに設定しておいてください。
(デフォルトは「すべてのフォーム」になっているので要切り替えです)

作成したら、保存とアクティブ化をします。
作ったビジネスルールでうまく動作するかを確認。

ビジネスルールの動作検証
アレッ、できてない。。。
育成選手3桁背番号なのに、エラーになってますね。

失敗です!!!
なぜ失敗したかというと、計算処理の順番。
保存した時に、ビジネスルール→計算フィールドの反映の順番で動作するので、計算フィールドには背番号更新前の状態でチェックがされてしまうんですよね。

なので、結論としては、Dynamics側でビジネスロジックルールをうまく適用させるためには、スクリプト(保存時に背番号の桁数をチェックして計算用項目に値をセットなど)の力を借りないとダメだということ。
Salesforceの入力規則はある程度数式でカバーできますが、Dynamicsでの条件式はほとんど扱えないと思ってください。
ビジネスロジックルールの条件式が乏しいなぁ(泣)。

まとめ

  • Dynamicsのビジネスルールは入力規則の機能を含む
  • Dynamicsのビジネスルールは条件式が乏しい、スクリプトやプラグインでカバーすることを考慮しておく


成功企業に潜む ビジネスモデルのルール――見えないところに競争力の秘密がある

コメント