0


工作流Camunda入门demo

准备工作

先下载2个客户端,分别是Camunda Platform和Camunda Modeler

Camunda Platform是用来部署的
Camunda Modeler是用来设计流程的

具体的流程里的实际动作还是需要我们自己写代码去订阅实现的。

直接上官网的2个下载地址,下载后不需要配置环境变量直接就能run,我这边本地pc是windows的所以下载了windows的,运行步骤可以直接看官网文档

Camunda Platform
https://camunda.com/download/

平台登录默认账密
demo/demo
在这里插入图片描述

Camunda Modeler
https://camunda.com/download/modeler/
在这里插入图片描述

简单设计一个流程

在2者启动之后,打开modler开始demo制造。

双击开始圆圈节点,起个名字,然后鼠标左点击后选择Append task(空白矩形),然后也是双击起个名字,之后点击Append task后选择change type改成service task,最后增加一个end节点。

接着在service task里的Implementation中修改类型为External,给topic起个名字,这个topic名字就是一会我们需要在代码里订阅的。

最后就是部署,然后启动我们的代码。用postman抛个demo数据过去看能不能接收到。

下面用图片描述下上面的流程

1-新建文件

官网用的文档也是这个version 7的,所以我这里就直接创建版本7的了

在这里插入图片描述

2命名开始节点
在这里插入图片描述

3-创建一个任务并命名

在这里插入图片描述

4-修改任务为service task
在这里插入图片描述

5-追加结束节点并命名
在这里插入图片描述

6-修改刚创建的task类型

在这里插入图片描述

7-自定义代码订阅任务节点内容

我这边使用的java
导入依赖

<dependency><groupId>org.camunda.bpm</groupId><artifactId>camunda-external-task-client</artifactId><version>7.15.0</version></dependency><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-simple</artifactId><version>1.6.1</version></dependency><dependency><groupId>javax.xml.bind</groupId><artifactId>jaxb-api</artifactId><version>2.3.1</version></dependency>

直接运行下面这段代码

packagecom.fchan.worker;importorg.camunda.bpm.client.ExternalTaskClient;importjava.awt.*;importjava.net.URI;importjava.util.logging.Logger;/**
 * ClassName: ChargeCardWorker
 * Description:
 * date: 2022/11/11 10:18
 *
 * @author fchen
 */publicclassChargeCardWorker{privatefinalstaticLoggerLOGGER=Logger.getLogger(ChargeCardWorker.class.getName());publicstaticvoidmain(String[] args){ExternalTaskClient client =ExternalTaskClient.create().baseUrl("http://localhost:8080/engine-rest").asyncResponseTimeout(10000)// 长轮询超时时间.build();// 订阅指定的外部任务,task的topic
        client.subscribe("task_demo").lockDuration(1000)// 默认锁定时间为20秒,这里修改为1秒.handler((externalTask, externalTaskService)->{// 将您的业务逻辑写在这// 获取流程变量String item =(String) externalTask.getVariable("item");Long amount =(Long) externalTask.getVariable("amount");LOGGER.info("Charging credit card with an amount of '"+ amount +"'€ for the item '"+ item +"'...");try{Desktop.getDesktop().browse(newURI("https://docs.camunda.org/get-started/quick-start/complete"));}catch(Exception e){
                        e.printStackTrace();}// 完成任务
                    externalTaskService.complete(externalTask);}).open();}}

8-部署流程

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

9-测试

post请求
http://localhost:8080/engine-rest/process-definition/key/Process_0d1kgby/start

Process_0d1kgby就是刚刚我们流程的id

body内容可以自定义,和我们代码对上即可

{"variables":{"amount":{"value":555,"type":"long"},"item":{"value":"item-xyz"}}}

测试成功
在这里插入图片描述


本文转载自: https://blog.csdn.net/weixin_43944305/article/details/127801907
版权归原作者 好大的月亮 所有, 如有侵权,请联系我们删除。

“工作流Camunda入门demo”的评论:

还没有评论