Camunda流程平台

官网链接

一、Camunda是什么?

Camunda是一种基于Java的框架,支持BPMN,用于工作流和过程自动化;CMMN,用于案例管理;DMN,用于业务决策管理。

二、安装相关软件

  • 下载建模工具:下载链接
    解压后双击Camunda Modeler.exe
  • 下载Camunda平台:下载链接
    解压Camunda平台压缩包后,双击start.bat脚本。(端口号是8080)
    浏览器输入http://localhost:8080/ 账号和密码都是 demo

三、简单入门案例

  1. 创建一个BPMN图
    在这里插入图片描述
  2. 画一个简单的流程图(开始->任务->结束)
    在这里插入图片描述
  3. 创建一个maven项目,导入依赖,加上官方提供的相关代码。
    依赖
<properties>
        <camunda.external-task-client.version>7.17.0</camunda.external-task-client.version>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.camunda.bpm</groupId>
            <artifactId>camunda-external-task-client</artifactId>
            <version>${camunda.external-task-client.version}</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>
    </dependencies>

相关代码

package com.demo;

import java.util.logging.Logger;
import java.awt.Desktop;
import java.net.URI;

import org.camunda.bpm.client.ExternalTaskClient;

public class ChargeCardWorker {
  private final static Logger LOGGER = Logger.getLogger(ChargeCardWorker.class.getName());

  public static void main(String[] args) {
    ExternalTaskClient client = ExternalTaskClient.create()
        .baseUrl("http://localhost:8080/engine-rest")
        .asyncResponseTimeout(10000) // 长轮询超时
        .build();

    // 订阅流程中指定的外部任务主题
    client.subscribe("charge-card")
        .lockDuration(1000) // 默认的锁定持续时间是20秒,但是您可以覆盖它
        .handler((externalTask, externalTaskService) -> {
          // 把您的业务逻辑放在这里

          // 获取一个过程变量
          String item = externalTask.getVariable("item");
          Integer amount = externalTask.getVariable("amount");

          LOGGER.info("Charging credit card with an amount of '" + amount + "'€ for the item '" + item + "'...");

          try {
              Desktop.getDesktop().browse(new URI("https://docs.camunda.org/get-started/quick-start/complete"));
          } catch (Exception e) {
              e.printStackTrace();
          }

          // 完成任务
          externalTaskService.complete(externalTask);
        })
        .open();
  }
}

启动项目没有报错,就是正常的
在这里插入图片描述

  1. 关联流程图
    在这里插入图片描述
  2. 测试一下
    请求地址:http://localhost:8080/engine-rest/process-definition/key/Process_1ipfmtq/start
    参数:
{
	"variables": {
		"amount": {
			"value":555,
			"type":"integer"
		},
		"item": {
			"value": "item-xyz"
		}
	}
}

在这里插入图片描述

后面可以跟着官方文档试一下,官方流程还是很详细的:官方文档快速入门

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值