Signavio流程治理中的DMN业务规则执行

彼得·希尔顿|编剧12分钟读取

Signavio流程治理与SAP Signavio流程管理器的集成使业务规则从建模到执行

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

使用DMN对业务规则建模

为了简单起见,本教程将使用一个简单的价格计算示例。这是业务规则的典型用法,业务规则通常根据许多输入变量计算数值结果。价格计算通常是出了名的复杂,但是这个例子只依赖于单位价格、单位数量和基于单位数量的计算折扣,如DMN模型所示。

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

在SAP Signavio Process Manager中创建规则模型

首先,打开Signavio Explorer。在“新建”菜单上,选择“业务决策图(DMN 1.1)”选项,以创建并打开一个新的DMN模型图。

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

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

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

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

添加决策表

现在您已经指定了“Number of units”输入是一个数字,您可以使用它来配置“Discount”决策表。

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

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

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

请注意,最后一条规则是“小于1000的单位数”,如果前面的规则都不匹配,它将匹配单位数,这样至少有一条规则匹配。

添加基于表达式的规则

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

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

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

  1. 在图中,单击“折扣”形状左上角的决策表图标。
  2. 在“Decision logic: Total price”对话框中,在左侧选择“Literal Expression”。
  3. 使用选择列表将表达式类型从“自由文本”更改为“表达式”。
  4. 点击文本输入框,从菜单中选择“Number of units”变量。
  5. 仍然在文本输入框中,键入“*”(星号)并选择“Unit price”。
  6. 输入' *(1 - ',选择Discount,并输入')'来完成表达式。
  7. 选择“应用并关闭”保存更改。

DMN模型现在已经完成,因此您已经准备好创建BPMN模型并将其链接到DMN图。

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

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

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

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

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

  1. 在“Attributes”面板上,将“Task type”设置为“Business rule”。
  2. 在Decision logic属性值中,选择browse按钮。
  3. 在“建立链接”对话框中,选择“使用现有图表”。
  4. 从您的工作区中选择“计算总价”DMN模型,并选择“链接图”。

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

业务规则执行

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

将BPMN模型转换为Signavio流程治理

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

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

当模型成功转移后,选择“在Signavio Process Governance中打开工作流”:

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

为执行准备流程模型

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

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

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

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

下一步是通过将两个表单字段映射到业务规则来配置DMN Rule Task输入变量。选择“Actions”选项卡,然后选择“Calculate price”业务规则任务。

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

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

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

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

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

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

最后,在页面的右上角,选择‘Publish changes’以创建包含表单和业务规则任务映射的流程模型的新版本。现在流程已经准备好执行了。

执行流程

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

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

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

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

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

发布日期:2016年9月22日-最后修改:2020年11月13日