02Camunda系列-扩展案例-用户任务网关决策自动化

Posted 波波烤鸭

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了02Camunda系列-扩展案例-用户任务网关决策自动化相关的知识,希望对你有一定的参考价值。


【02】Camunda系列-扩展案例-用户任务、网关、决策自动化_排他网关

Camunda 案例讲解

  上面的案例过于简单,我们添加不同的任务节点和网关来丰富下

1. 用户任务

1.1 添加节点

   我们在上面的案例中添加一个​​用户任务​​来处理流程。

【02】Camunda系列-扩展案例-用户任务、网关、决策自动化_Camunda_02

点击刚刚创建的​​批准付款​​​节点,然后通过扳手设置节点的类型为​​用户任务​​(User Task)

【02】Camunda系列-扩展案例-用户任务、网关、决策自动化_Camunda_03

  然后设置节点的审批人为​​demo​

【02】Camunda系列-扩展案例-用户任务、网关、决策自动化_Camunda_04

1.2 配置表单

  在​​用户节点​​处我们绑定表单数据。然后创建表单相关的字段,并添加对应的描述信息。

【02】Camunda系列-扩展案例-用户任务、网关、决策自动化_java_05

amount字段:

ID:amount

Type:long

Label:金额

Item字段:

ID:item

Type:string

Label:项目

Approved字段:

ID:approved

Type:boolean

Label:是否同意

1.3 部署流程

  流程定义好之后我们就可以部署流程了。直接在​​Camunda Modeler​​​工具栏上的上传按钮将流程上传到流程引擎中。部署后在​​Camunda Web​​中查看部署的流程。

【02】Camunda系列-扩展案例-用户任务、网关、决策自动化_java_06

1.4 测试流程

  打开任务列表(http://localhost:8080/camunda/app/tasklist/),使用 demo / demo 登录。点击右上角的 ​​Start process​​ ,在弹出的对话框中选择“付款流程”.

【02】Camunda系列-扩展案例-用户任务、网关、决策自动化_排他网关_07

  这时会弹出编辑流程变量的对话框,可以通过点击 Add a variable 按钮添加变量,这次我们先不添加,直接点击右下角​​Start​​启动流程。

【02】Camunda系列-扩展案例-用户任务、网关、决策自动化_排他网关_08

这时,在任务列表应该就能看到刚创建的人工任务了,如果没有可以手动刷新一下

【02】Camunda系列-扩展案例-用户任务、网关、决策自动化_DMN_09

  到这儿这个​​用户任务​​节点的人工审核就应该要处理了,我们在下一个案例中继续这个案例,我们加入排他网关来处理。

2.排他网关

  我们将使用排他网关(Exclusive Gateways),为流程添加分支,仅在金额足够大的时候进行人工审核.

2.1 添加网关节点

  首先打开​​Camunda Modeler ​​,在左侧的工具架中找到网关(菱形),将它拖动到“付款请求”和“刷卡付款”之间,将“批准付款”向下移动再添加一个网关,调整流程,最后看起来类似这样:

【02】Camunda系列-扩展案例-用户任务、网关、决策自动化_DMN_10

2.2 配置网关

  接下来,我们选择“<1000”的连线,打开属性面板,选择“Condition Type”为“Expression”,这里我们使用​​JAVA统一表达式语言​​​编写条件,这里要做的是在金额小于1000时直接刷卡付款,则输入表达式 ​​$amount<1000​

【02】Camunda系列-扩展案例-用户任务、网关、决策自动化_工作流_11

同样的,对另一条线也进行配置,表达式为​​$amount>=1000​

【02】Camunda系列-扩展案例-用户任务、网关、决策自动化_工作流_12

然后​​是否批准​​的排他网关节点我们也需要处理下

【02】Camunda系列-扩展案例-用户任务、网关、决策自动化_排他网关_13

【02】Camunda系列-扩展案例-用户任务、网关、决策自动化_java_14

2.3 部署流程

  部署流程和上面的操作是一样的。

【02】Camunda系列-扩展案例-用户任务、网关、决策自动化_工作流_15

2.4 测试操作

  打开任务列表(http://localhost:8080/camunda/app/tasklist/),使用 demo / demo 登录,点击右上角的 Start process ,在弹出的对话框中选择“付款流程”,上面例子中,我们直接点击 Start,但这次我们要增加几个变量来测试动态的流程。

【02】Camunda系列-扩展案例-用户任务、网关、决策自动化_排他网关_16

试着更改 ​​amount​​ 的值,查看对流程执行顺序的影响

3.决策自动化

  在上面的案例中我们在审批时是通过​​用户任务​​​结合表单来做的审批,本案例我们来看看我们通过​​DMN​​为流程添加一个业务规则来处理

3.1 添加业务规则

  打开 Camunda Modeler,点击 “批准付款”,在右面的扳手菜单中,将类型改为“Business Rule Task ”(业务规则任务)

【02】Camunda系列-扩展案例-用户任务、网关、决策自动化_工作流_17

下一步,将属性面板中的 ​​Implementation​​​ 选择为​​DMN​​​,输入 Decision Ref 为 ​​approve-payment​​​,为了将决策的结果存入流程变量,我们还需要编辑结果变量Result Variable 为​​approved​​​,结果类型 Map Decision Result 选择为 ​​singleEntry ​​,最后结果如下:

【02】Camunda系列-扩展案例-用户任务、网关、决策自动化_DMN_18

3.2 创建DMN表

  点击 ​​File > New File > DMN Diagram​​​创建一个新的DMN,现在画布上已经存在一个决策元素了,选择它,然后在右侧属性面板中更改​​Id​​​和​​Name​​​,这里的Id需要和流程中的​​Decision Ref​​​属性一致,这次我们输入Id为​​approve-payment​

【02】Camunda系列-扩展案例-用户任务、网关、决策自动化_Camunda_19

  接下来,点击决策元素左上角的表格按钮,创建新的DMN表.

【02】Camunda系列-扩展案例-用户任务、网关、决策自动化_排他网关_20

3.3 编辑DMN表

  首先编辑输入参数,在本例中,为了简单,我们依据项目名进行判断,规则可以使用 ​​FEEL 表达式​​​、​​JUEL​​​或者 ​​Script​​ 书写,详情可以阅读 https://docs.camunda.org/manual/latest/user-guide/dmn-engine/expressions-and-scripts/

双击表格中的Input,编辑第一个输入参数

【02】Camunda系列-扩展案例-用户任务、网关、决策自动化_工作流_21

下面,设置输入参数,双击Output编辑

【02】Camunda系列-扩展案例-用户任务、网关、决策自动化_工作流_22

下面,我们点击左侧的蓝色加号,添加一些规则,最后类似这样:

【02】Camunda系列-扩展案例-用户任务、网关、决策自动化_DMN_23

3.4 部署DMN表

  点击底部的部署按钮,将DMN部署到流程引擎中

【02】Camunda系列-扩展案例-用户任务、网关、决策自动化_Camunda_24

3.5 流程案例测试

  现在打开 http://localhost:8080/camunda/app/cockpit/ ,使用demo/demo登录,可以看到决策定义增加了一个,点击进去可以看到刚才编辑的DMN.

【02】Camunda系列-扩展案例-用户任务、网关、决策自动化_工作流_25

点击进去可以看到对应的决策信息

【02】Camunda系列-扩展案例-用户任务、网关、决策自动化_Camunda_26

然后我们部署流程然后启动流程

【02】Camunda系列-扩展案例-用户任务、网关、决策自动化_java_27

该流程决策输出的​​approved​​为true

【02】Camunda系列-扩展案例-用户任务、网关、决策自动化_排他网关_28

更改下输入的参数

【02】Camunda系列-扩展案例-用户任务、网关、决策自动化_DMN_29

该决策中输出的​​approved​​为false

【02】Camunda系列-扩展案例-用户任务、网关、决策自动化_Camunda_30

好了~到此Camunda的基础入门案例我们就讲解到这里


以上是关于02Camunda系列-扩展案例-用户任务网关决策自动化的主要内容,如果未能解决你的问题,请参考以下文章

02Camunda系列-扩展案例-用户任务网关决策自动化

02Camunda系列-扩展案例

第八篇Camunda系列-网关服务

第八篇Camunda系列-网关服务

第十五篇Camunda系列-任务回退驳回回退

第十五篇Camunda系列-任务回退驳回回退