前页 后页

示例-贷款分期付款计算

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

  • BKM定义了四个参数:产品类型,费率,期限和金额
  • Boxed Context定义了两个变量表达式对条目。这些变量用作“局部变量”,可以在以后的表达式中使用
  • 返回值:表达式可以使用“局部变量”的值
  • Boxed Context中的任何表达式都可以使用内置函数,这些函数在可自定义的Template — DMN Library中定义;在此示例中使用了函数PMT(...)和十进制(...)

指定类型作为上下文输入变量

通常,表达式和变量不必指定类型,该类型可以从提供的值中推断出来。 JavaScript通常支持此功能,JavaScript用于Enterprise Architect的DMN仿真。

但是,如果要从DMN模型生成代码以编译语言(例如Java,C ++或C#),则必须为每个上下文输入变量指定类型。否则,如果您验证模型,则会看到如下警告:

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

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

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

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

表达式编辑器和智能感知支持

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

要编辑表达式,请右键单击该表达式(在右侧字段中),然后选择“编辑表达式”菜单选项。显示“表达式”对话框。单击所需的行,然后按Ctrl + Space以显示Intelli-sense菜单:

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

在生成的代码中,变量名内的空格将由下划线代替。

业务知识模型的仿真

选择“模拟的输入参数值”选项卡,并填写每个字段。

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

  • 将显示运行时参数值;例如,“费率= 0.00375”
  • 将显示“上下文条目”变量的运行时值;例如,“每月还款= 1520.06”
  • BKM的结果将由最后一个条目评估,并在声明行上显示值;例如,“ return = 1540.06”
您可以使用此功能在不知道上下文的情况下对BusinessKnowledgeModel进行单元测试,以便稍后可以由Decision或另一个BusinessKnowledgeModel调用它。