3.4. 交通違反 DMN デシジョン論理の定義
罰金を計算し、ドライバーが免許停止になるかどうかを判定するために、DMN デシジョンテーブルとコンテキストボックス式を使用した交通違反 DMN デシジョン論理を定義します。
図3.7 罰金のデシジョンテーブル
図3.8 ドライバーを免許停止にする必要がありますか ?
前提条件
- Business Central の交通違反 DRD で、DMN カスタムデータタイプが適切なデシジョンおよび入力ノードに割り当てられている。
手順
- 罰金を計算するには、DMN デザイナーキャンバスで Fine デシジョンノードを選択し、Edit をクリックして DMN ボックス式デザイナーを開きます。
-
Select expression
Decision Table をクリックします。 - パラメーターフィールド Violation.Date、Violation.Code、および Violation.Speed Limit で右クリックして、各フィールドで Delete を選択します。
-
Violation.Actual Speed 列ヘッダーをクリックし、Name フィールドに
Violation.Actual Speed - Violation.Speed Limit
式を入力します。 -
Fine パラメーターフィールドを右クリックして、
Insert left
またはInsert right
を選択します。 -
output-2 列サブヘッダーをクリックし、Name フィールドに
Amount
を入力し、Data Type プルダウンメニューからnumber
を選択します。 -
同様に output-1 列サブヘッダーをクリックして Name フィールドに
Points
と入力し、Data Type フィールドからnumber
を選択します。 次に、デシジョンテーブルの一行目に以下の値を入力します。
-
Violation.Type:
"speed"
-
Violation.Actual Speed - Violation.Speed Limit:
[10..30)
-
Amount:
500
Points:
3
1 行目を右クリックし、
Insert below
を選択して新たな行を追加します。
-
Violation.Type:
デシジョンテーブルの 2 行目に以下の値を入力します。
-
Violation.Type:
"speed"
-
Violation.Actual Speed - Violation.Speed Limit:
>= 30
-
Amount:
1000
Points:
7
2 行目を右クリックし、
Insert below
を選択して新たな行を追加します。
-
Violation.Type:
デシジョンテーブルの 3 行目に以下の値を入力します。
-
Violation.Type:
"parking"
-
Violation.Actual Speed - Violation.Speed Limit:
-
-
Amount:
100
Points:
1
3 行目を右クリックし、
Insert below
を選択して新たな行を追加します。
-
Violation.Type:
デシジョンテーブルの 4 行目に以下の値を入力します。
-
Violation.Type:
"driving under the influence"
-
Violation.Actual Speed - Violation.Speed Limit:
-
-
Amount:
1000
-
Points:
5
-
Violation.Type:
- Save をクリックします。
- ドライバーの免許停止ルールを定義するには DMN デザイナーキャンバスに戻って Should the driver be suspended? デシジョンノードを選択し、Edit をクリックして DMN ボックス式デザイナーを開きます。
-
Select expression
Context をクリックします。 -
ContextEntry-1 をクリックして Name に
Total Points
と入力し、Data Type プルダウンメニューからnumber
を選択します。 -
Total Points の横のセルをクリックしてコンテキストメニューから
Literal Expression
を選択し、Driver.Points + Fine.Points
式を入力します。 -
Driver.Points + Fine.Points の下のセルのコンテキストメニューから
Literal Expression
を選択し、if Total Points >= 20 then "Yes" else "No"
と入力します。 Save をクリックします。
これで罰金の計算方法とドライバーをいつ免許停止にするかを決定するコンテキストが定義されました。traffic-violation プロジェクトページに移動して Build をクリックすると、用例のプロジェクトがビルドされ、Alerts パネルのエラー (ある場合) が対処されます。