预订演示
前页 后页

示例-贷款分期计算

业务知识模型(BKM)分期计算以盒装上下文的形式实现。

  • BKM 定义了四个参数:类型、Rate、团队和 Amount
  • Boxed Context 定义了两个变量-表达式对条目;这些变量充当“局部变量”,可以在以后的表达式中使用
  • 返回值:表达式可以使用'局部变量'的值
  • 盒装上下文中的任何表达式都可以使用内置函数,这些函数在可定制的模板 - DMN 库中定义;本例中使用了函数 PMT(...) 和 decimal(...)

为上下文条目变量指定类型

一般,表达式和变量不必指定类型,类型是从提供的值推断出来的。此特征一般由JavaScript支持,用于Enterprise Architect的 DMN仿真。

但是,如果您想将 DMN模型中的代码生成为Java 、C++ 或 C# 等编译语言,则必须为每个上下文条目变量指定类型。否则,如果您验证模型,您将看到如下警告:

右键单击此模型中的上下文条目变量(月费、月还款)。

选择“显示变量类型”选项。

现在输入变量类型,将其附加到变量名称并用冒号分隔,如此处所示。

然后单击工具栏上的 Save 按钮保存表达式,然后单击按钮再次验证模型。

表情编辑器和智能感知支持

根据 FEEL 语言规范,参数和上下文条目的变量名称可以包含空格。这个特征使表达式易于阅读。为了帮助您用更少的输入和更少的错误编辑表达式, Enterprise Architect智能感知了对编辑表达式的支持:

要编辑表达式,请右键单击表达式(在右侧字段中)并选择“编辑表达式”菜单选项。将显示“表达式”对话框。单击并按 Ctrl+Space 以显示所需的智能感知菜单行:

  • 将包含所有早于当前的上下文条目变量(不包括晚于当前的上下文条目变量)
  • 对于业务知识模型(BKM),将包含所有参数
  • 对于决策,将包括所有必需的决策
DMN模型可以生成为JavaScript 、 Java 、C# 和 C++ 的源代码。由于某些语言可能对某些表达式有不同的语法, Enterprise Architect为每种语言提供了语言覆盖页面。如果没有为语言指定覆盖代码,则将使用为 FEEL 语言定义的表达式。

在生成的代码中,变量名中的空格将被替换为下划线。

业务知识模型仿真

选择“用于仿真的输入参数值”选项卡并完成每个字段。

单击保存按钮,然后单击工具栏上的仿真按钮;测试结果将显示在 Boxed Context 表达式中。

  • 将显示运行时参数值;例如,“速率 = 0.00375”
  • 将显示“上下文条目”变量的运行时值;例如,“每月还款额 = 1520.06”
  • 业务知识模型(BKM)的结果将根据最后一个条目和申报行显示的值进行评估;例如,'return = 1540.06'
您可以使用此功能对 BKM 进行单元测试,而无需了解上下文,以便稍后可以由决策或另一个 BKM 调用。