3.4. 定义流量违反 DMN 决策逻辑
要计算正常情况,并确定驱动程序是否被暂停,您可以使用 DMN 决策表和上下文框表达式定义流量违反 DMN 决策逻辑。
图 3.8. 细致的决策表
图 3.9. 驱动程序应该被暂停?
先决条件
- 您已将 DMN 自定义数据类型分配给 Business Central 的流量违反 DRD 中的适当的决定和输入节点。
流程
要计算正常,在 DMN Designer canvas 中,选择 Fine 决策节点,然后点 Edit 图标以打开 DMN 框表达式设计程序。
图 3.10. 决策节点编辑图标
点 Select expression
Decision Table。 图 3.11. 选择 Decisiong Table 逻辑类型
- 对于 Violation.Date、Violation.Code 和 Violation.Speed Limit 参数字段,右键单击每个字段并选择 Delete。
-
点 Violation.Actual Speed 列标头,并在 Expression 字段中输入表达式
Violation.Actual Speed - Violation.Speed Limit。 在决策表的第一行中输入以下值:
-
violation.Type:
"speed" -
violation.Actual Speed - Violation.Speed Limit:
[10..30) -
数字 :
500 点:
3右键点击第一行,并选择
下面的 Insert以添加另一行。
-
violation.Type:
在路由表的第二行中输入以下值:
-
violation.Type:
"speed" -
violation.Actual Speed - Violation.Speed Limit : &
gt;= 30 -
数量 :
1000 点:
7右键点击第二行,并选择
下面添加另一行。
-
violation.Type:
在决策表的第三行中输入以下值:
-
violation.Type:
"parking" -
violation.Actual Speed - Violation.Speed Limit:
- -
数量
:100 点:
1右键点击第三行并选择以下键
来添加另一个行。
-
violation.Type:
在决策表的第四行中输入以下值:
-
violation.Type:
"driving under under impact" -
violation.Actual Speed - Violation.Speed Limit:
- -
数量 :
1000 -
点:
5
-
violation.Type:
- 点击 Save。
- 要定义驱动程序挂起规则,返回到 DMN Designer canvas,选择 Should the driver be suspended? 决策节点,然后单击 Edit 图标以打开 DMN 框表达式设计程序。
-
点 Select expression
Context。 -
单击 ContextEntry-1,输入
Total Points作为 Name,然后从 Data Type 下拉菜单中选择数字。 -
单击 Total Points 旁边的单元,从上下文菜单中选择
Literal 表达式,并输入Driver.Points + Fine.Points作为表达式。 -
在 Driver.Points + Fine.Points 下的单元格中,从上下文菜单中选择
Literal Expression,并输入if Total Points >= 20 then "Yes" else "No"。 点击 Save。
您已定义了如何计算微调,以及决定何时挂起驱动程序的上下文。您可以导航到 traffic-violation 项目页面,然后点 Build 来构建示例项目,并解决 Alerts 面板中记下的任何错误。