本文是一个教程,演示如何在决策模型和符号(DMN)模型中定义业务规则,然后使用SignaVio Workflow Accelerator进行业务规则执行。DMN为您提供了一种在单独的模型中定义业务规则的方法,并阻止业务逻辑使业务流程模型不必要的复杂。

使用DMN建模业务规则

为了简单,对于本教程,您将使用简单的价格计算示例。这是业务规则的典型用途,它通常根据许多输入变量计算数字结果。价格计算通常是臭名昭着的,但这个例子只取决于每单位的价格,单位数量和基于单位数的计算折扣,如此DMN模型所示。

在此模型中,“单位价格”和“单位数”是输入值。“折扣”是使用“单位数量”作为输入的业务决策,“总价格”是使用输入值和“折扣”决定作为输入的另一个业务决策。

在Signavio Process Manager中创建规则模型

要启动,请打开SignaVio Explorer。在“新”菜单上,选择“业务决策图(DMN 1.1)”选项,以创建和打开新的DMN模型图..

通过从左侧的“Shape Repository”面板中拖动“Decision”和“Input data”形状,从上图中创建模型。若要绘制箭头,请选择一个形状并将出现在该形状旁边的小箭头图标拖动到要连接的形状。

现在,您有一个基本的DMN模型,它显示了输入数据,决策和它们之间的依赖关系。下一步是为两个输入设置正确的数据类型。

  1. 在图表中选择“单价”输入数据形状。
  2. 打开右边的“Attributes”面板。
  3. 将“Value domain”设置为“Number”。
  4. 将“单位”设置为“货币”
  5. 将“货币单位”改为“欧元”。

对“Number of units”输入重复步骤1-3,将其域设置为“Number”。指定值域使在计算中使用数字成为可能,这是下一步。

添加决策表

既然您已指定“单位数”输入是一个数字,您可以使用它来配置“折扣”决策表。

要将此表添加到编辑器中的DMN模型,请完成以下步骤。

  1. 在图中,单击“折扣”形状左上角的决策表图标。
  2. 在“Decision logic: Discount”对话框中,双击“New Output”列标题并将其更改为“Discount”。
  3. 在“折扣”列标题下,双击“文本”标题。
  4. 在' Column configuration '对话框中,将' Value domain '设置为' Number '。
  5. 设置“数字单位”为“百分比”,然后点击“保存”。
  6. 在表格的左上角,单击“U”以打开表格配置对话框。
  7. 在表配置对话框中,将命中策略更改为“First (single)”,这样您就可以根据匹配的第一个单元数量指定折扣。
  8. 双击第1行中第一个单元格的左侧,然后在操作员列表中选择“<(更少)”。
  9. 在单元格的右边,双击并输入数字“100”。
  10. 在“折扣”列中,双击并输入百分比“0”。
  11. 在注释列中,双击并输入“No discount”。
  12. 单击“Add new row”,重复步骤8-10添加剩余的折扣规则,如下图所示。

这个决策表定义了每个单位数量的折扣;表中的每一行都是一个“规则”。“First”命中策略(在左上角显示为“F”)意味着每个规则将被评估,直到其中一个匹配“Number of units”输入值。第一个匹配将确定' Discount ',这是该决策的输出值。

请注意,最后一个规则是“单位数⩾1000”,如果以前的规则匹配,则会匹配单位数,从而至少一个规则匹配。

添加基于表达式的规则

计算折扣涉及从表中选择一个折扣规则。但是,要计算总价(包括折扣),您需要配置一个算术表达式。

要根据输入和折扣定义总价格,请配置“总价格”决策以使用表达式。

要将此表添加到编辑器中的DMN模型,请完成以下步骤。

  1. 在图中,单击“折扣”形状左上角的决策表图标。
  2. 在“Decision logic: Total price”对话框中,在左侧选择“Literal Expression”。
  3. 使用“选择”列表将表达式从“Free Text”更改为“表达式”。
  4. 在文本输入框中单击,并从菜单中选择“单元数”变量。
  5. 仍然在文本输入字段中,键入“*”(星号)并选择“单位价格”。
  6. 键入' *(1 - ',选择折扣,并键入')'来完成表达式。
  7. 选择“申请和关闭”以保存更改。

DMN模型现在已经完成,现在可以创建BPMN模型,并将其链接到DMN图。

将业务规则链接到流程模型

要使用“计算总价”DMN模型,您需要将其作为业务规则任务添加到BPMN流程模型中。

创建“发送价格报价”模型爱游戏ayx下载 通过创建一个新的BPMN 2.0带有三个任务序列的图,每个任务具有给定的名称和任务类型。

  1. 计算价格(业务规则)
  2. 检查总(用户)
  3. 发送报价(发送)

将“计算价格”任务链接到DMN模型如下。

  1. 在“Attributes”面板上,将“任务类型”设置为“业务规则”。
  2. 在“Decision logic”属性值中,选择浏览按钮。
  3. 在“建立链接”对话框中,选择“使用现有的图表”。
  4. 从工作区中选择“计算总价格”DMN模型,然后选择“链接图”。

现在您有了一个链接到DMN业务规则模型的BPMN流程模型,现在可以执行了。

业务规则执行

要在“计算总价格”DMN模型中执行业务规则,您需要执行链接的BPMN模型。

将BPMN模型转移到Signavio工作流加速器

在Signavio资源管理器中,选择“发送价格报价”BPMN模型,并在Signavio工作流菜单中,选择“在Signavio工作流中执行”。如果没有看到此菜单,请让系统管理员将工作区链接到Signavio工作流加速器

在确认对话框中,选择“Transfer”将BPMN模型复制到Signavio Workflow Accelerator:

当模型成功转移时,选择“在Signavio工作流加速器中打开工作流”:

这将在Signavio Workflow Accelerator的流程编辑器中打开模型。

准备进程模型进行执行

当您在Signavio Workflow Accelerator的流程构建器中打开流程时,“Actions”选项卡将显示您在Signavio process Manager中创建的模型。但是,流程还没有准备好执行;您仍然需要添加用于输入和查看流程数据的表单。

首先,选择' Trigger '选项卡,这样您就可以添加一个表单触发器,它将为流程捕获输入数据。

要添加触发器表单,请完成以下步骤。

  1. 在process builder的' Trigger '选项卡上,选择' When a form is submitted '来添加触发器表单。
  2. 在右侧,选择“Money”以添加货币类型字段。
  3. 输入标签“单价”。
  4. 选择“Number”添加第二个字段,并输入“Number of units”标签。

下一步是通过将两个表单字段映射到业务规则来配置DMN规则任务输入变量。选择“操作”选项卡,然后选择“计算价格”业务规则任务。

在业务规则任务的配置面板上,“Inputs”选项卡显示了DMN模型的两个输入,“Unit price”和“Number of units”。对于每个输入,选择输入旁边的字段,然后选择具有相同名称的表单字段。

接下来,使用' Outputs '选项卡配置规则任务将为DMN模型的' Total price '输出创建的流程变量。

“输出”选项卡自动将输出映射到具有相同名称的变量,因此您不必在此更改配置。

接下来,配置“Check total price”用户任务以显示计算出的总价。

要将“Total price”字段添加到表单中,请完成以下步骤。

  1. 在流程编辑器中,选择用户任务以打开其配置面板。
  2. 选择“Form”选项卡。
  3. 在右侧,选择现有字段的选择列表,然后选择“总价格”以将字段添加到表单中。

最后,在页面的右上角,选择“Publish changes”来创建包含表单和业务规则任务映射的流程模型的新版本。现在流程可以执行了。

执行过程

要执行流程,请在流程构建器的“Versions”选项卡上或在“Processes”列表中,选择“Start new case”。这显示了您之前定义的开始形式,在这里您可以输入“单价”和“单位数量”的值。

在表单中输入值,然后选择' Start new case '创建一个新的' Send price quotation ' case。Signavio Workflow Accelerator自动执行业务规则任务,因此您可以立即检查结果。

在' Send price quotation #1 '案例视图中,选择' Check total price '任务来打开任务视图。任务视图显示了包含“Total price”字段的表单,该字段由业务规则执行的结果填充。

恭喜,你已经完成了!剩下要做的就是选择“完成”来完成任务,然后执行“发送报价”任务来发送电子邮件。不过,不要担心:如果你没有配置邮件任务,它实际上不会发送电子邮件到任何地方。

您现在已经看到了使用Signavio的业务转换套件定义和执行业务规则的端到端示例。如果你还没有接触到Signavio的产品,联系我们了解如何访问用于建模和执行的集成业务流程和规则。

发表于:2016年9月22日 - 上次修改:2020年11月13日