本文是一篇教程,演示了如何使用Signavio Process Manager在Decision Model & Notation (DMN)模型中定义业务规则,然后使用Signavio Workflow Accelerator执行业务规则。DMN为您提供了一种方法,可以在单独的模型中定义业务规则,并防止业务逻辑使业务流程模型变得不必要地复杂。
使用DMN建模业务规则
为了保持简单,在本教程中,您将使用一个简单的价格计算示例。这是业务规则的典型用法,业务规则通常基于大量输入变量计算数值结果。价格计算通常是出了名的复杂,但这个例子只取决于单位价格、单位数量,以及基于单位数量计算的折扣,如DMN模型所示。
在这个模型中,“单价”和“单位数”是输入值。“折扣”是一个使用“单位数量”作为输入的商业决策,而“总价”是另一个同时使用输入值和“折扣”作为输入的商业决策。
在Signavio Process Manager中创建规则模型
首先,打开Signavio Explorer。在“New”菜单中,选择“Business Decision Diagram (DMN 1.1)”选项,创建并打开一个新的DMN模型图。
通过从左侧的“Shape Repository”调色板中拖动“决定”和“输入数据”形状,从图(上面)创建模型。要绘制箭头,请选择形状并拖动出现在形状旁边的小箭头图标,以连接到要连接的形状。
现在您有了一个基本的DMN模型,它显示了输入数据、决策以及它们之间的依赖关系。下一步是为两个输入设置正确的数据类型。
- 在图表中选择“单价”输入数据形状。
- 打开右侧的“属性”面板。
- 将“值域”设置为“数字”。
- 将“单位”设置为“货币”
- 将“货币单位”改为“欧元”。
对“Number of units”输入重复步骤1-3,将其域设置为“Number”。指定值域使在计算中使用数字成为可能,这是下一步。
添加决策表
现在您已经指定了' Number of units '输入是一个数字,您可以使用它来配置' Discount '决策表。
要将此表添加到编辑器中的DMN模型中,请完成以下步骤。
- 在该图中,单击“折扣”形状的左上角的“决策表”图标。
- 在“Decision logic: Discount”对话框中,双击“New Output”列标题并将其更改为“Discount”。
- 在“折扣”列标题下,双击“文本”标题。
- 在“列配置”对话框中,将“值域”设置为“数字”。
- 设置“数字单位”为“百分比”,然后点击“保存”。
- 在表格的左上角,单击“U”以打开表格配置对话框。
- 在表配置对话框中,将命中策略更改为“First(Single)”,因此您可以根据匹配的第一个单位指定折扣。
- 双击第1行第一个单元格的左侧,在操作符列表中选择“< (less)”。
- 在单元格的右边,双击并输入数字“100”。
- 在“折扣”列中,双击并输入百分比“0”。
- 在Annotation列中,双击并输入“无折扣”。
- 单击“添加新行”并重复步骤8-10以添加剩余的折扣规则,如此屏幕截图所示。
该决策表定义了每个单位数的折扣;表中的每一行都是“规则”。“首次”命中策略,显示为左上角的“f”,这意味着将评估每个规则,直到一个匹配“单位数”输入值。第一场比赛将确定“折扣”,这是该决定的输出值。
注意最后一个规则是“单位数小于或等于1000”,如果前面的规则都不匹配,那么它将与单位数匹配,因此至少有一个规则匹配。
添加基于表达式的规则
计算折扣涉及从表中选择一个折扣规则。但是,要计算总价(包括折扣),您需要配置一个算术表达式。
要根据输入和折扣定义总价格,请配置“总价格”决策以使用表达式。
要将此表添加到编辑器中的DMN模型中,请完成以下步骤。
- 在该图中,单击“折扣”形状的左上角的“决策表”图标。
- 在“Decision logic: Total price”对话框中,在左侧选择“Literal Expression”。
- 使用选择列表将表达式类型从“Free text”更改为“expression”。
- 在文本输入框中单击,并从菜单中选择“单元数”变量。
- 在文本输入框中,键入' * '(星号)并选择'单价'。
- 键入' *(1 - ',选择折扣,并键入')'来完成表达式。
- 选择“应用并关闭”保存更改。
DMN模型现在完成,所以您已准备好创建BPMN模型,并将其链接到DMN图。
将业务规则链接到流程模型
要使用“计算总价”DMN模型,您需要将其作为业务规则任务添加到BPMN流程模型中。
创建“发送价格报价”模型爱游戏ayx官方 通过创建一个新的BPMN 2.0带有三个任务序列的图,每个任务具有给定的名称和任务类型。
- 计算价格(业务规则)
- 检查总(用户)
- 发送报价(发送)
将“计算价格”任务链接到DMN模型如下。
- 在“属性”面板上,将“任务类型”设置为“业务规则”。
- 在“Decision logic”属性值中,选择浏览按钮。
- 在“建立链接”对话框中,选择“使用现有的图表”。
- 在工作空间中选择“计算总价”DMN模型,然后选择“链接图”。
现在您有一个BPMN进程模型,它链接到DMN业务规则模型,现在已准备好执行。
业务规则执行
要执行“计算总价”DMN模型中的业务规则,您需要执行链接的BPMN模型。
将BPMN模型转移到SignaVIO工作流程加速器
在SignaVio Explorer中,选择“发送价格报价”BPMN模型,并在SignaVIO工作流菜单上,选择“在signavio工作流中执行”。如果您没有看到此菜单,请询问系统管理员将工作区链接到signavio工作流程加速器。
在确认对话框中,选择“Transfer”将BPMN模型复制到Signavio Workflow Accelerator:
当模型成功转移时,选择“在Signavio工作流加速器中打开工作流”:
这将在Signavio Workflow Accelerator的流程编辑器中打开模型。
准备流程模型以供执行
当您在Signavio Workflow Accelerator的流程构建器中打开流程时,“Actions”选项卡将显示您在Signavio process Manager中创建的模型。但是,流程还没有准备好执行;您仍然需要添加用于输入和查看流程数据的表单。
首先,选择' Trigger '选项卡,这样您就可以添加一个表单触发器,它将为流程捕获输入数据。
要添加触发器表单,请完成以下步骤。
- 在process builder的' Trigger '选项卡上,选择' When a form is submitted '来添加触发器表单。
- 在右侧,选择“Money”以添加货币类型字段。
- 输入标签“单价”。
- 选择“Number”添加第二个字段,并输入“Number of units”标签。
下一步是配置DMN Rule Task输入变量,将两个表单字段映射到业务规则。选择“Actions”选项卡,然后选择“Calculate price”业务规则任务。
在“业务规则”任务的配置面板上,“输入”选项卡显示了DMN模型的两个输入,“单位价格”和“单位数”。对于每个输入,选择输入旁边的字段,然后选择具有相同名称的表单字段。
接下来,使用' Outputs '选项卡配置规则任务将为DMN模型的' Total price '输出创建的流程变量。
' Outputs '选项卡自动将输出映射到具有相同名称的变量,因此您不必在这里更改配置。
接下来,配置“检查总价格”用户任务以显示计算的总价格。
要将“Total price”字段添加到表单中,请完成以下步骤。
- 在“流程编辑器”中,选择“用户任务”以打开其配置面板。
- 选择“Form”选项卡。
- 在右侧,选择现有字段的选择列表,并选择“Total price”将该字段添加到表单中。
最后,在页面的右上角,选择“发布更改”以创建包含表单和业务规则任务映射的进程模型的新版本。现在该过程准备执行。
执行的过程
要执行流程,请在流程构建器的“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的产品,爱游戏ayx网 了解如何访问用于建模和执行的集成业务流程和规则。