Camunda BPM
用途: 流程管理、流程解決方案
支持語言: java ,nodejs
官網入門指導:https://docs.camunda.org/get-started/quick-start/ 看官網可以快速構建一個可用的工程;
我嘗試使用了spring boot ,maven,Camunda BPM寫了個官網例子;
1、Spring boot 快速構建一個 web工程,https://start.spring.io/
2、把生成的工程導入到idea 或者eclipse里面;
2.1 修改pom.xml文件的依賴如下:
<dependencies>
<dependency>
<groupId>org.camunda.bpm.springboot</groupId>
<artifactId>camunda-bpm-spring-boot-starter-webapp</artifactId>
<version>3.2.0</version>
</dependency>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
其中org.camunda.bpm.springboot這個依賴繼承了 camunda bpm和 spring boot starter
<dependency>
<groupId>org.camunda.bpm.springboot</groupId>
<artifactId>camunda-bpm-spring-boot-starter-webapp</artifactId>
<version>3.2.0</version>
</dependency>
2.2 修改spring boot 主入口程序,加入注解@EnableProcessApplication;
@SpringBootApplication
@EnableProcessApplication
public class CamundabpmApplication {
public static void main(String[] args) {
SpringApplication.run(CamundabpmApplication.class, args);
}
}
2.3 啟動程序;瀏覽器訪問localhost:8080
頁面如下:
3、官網下載
camunda bpm 畫流程圖的工具:Camunda Modeler
下載鏈接:https://camunda.com/download/modeler/?__hstc=12929896.ac03a515a45a7a10726115b3f850d7c2.1551935385801.1551935385801.1551935385801.1&__hssc=12929896.2.1551955519686&__hsfp=100025305
解壓后,直接打開exe文件,可以打開工作界面;
4、畫圖如下,注意第二個方框上有一個人
畫好后,點擊右側,查看id;這個id是流程圖的唯一標志id;
保存文件為taskflow.bpmn
5、在 main/resources下面加入 META-INF 文件,在META-INF 下加入processes.xml文件,內容為空;
6、在main/resources下面加入application.yaml; 內容如下:
camunda.bpm:
admin-user:
id: kermit
password: superSecret
firstName: Kermit
filter:
create: All tasks
說明:不加這個文件也可以啟動,但是訪問頁面時沒有登錄
7、啟動spring boot ;訪問localhost:8080
可以看到登錄界面,登錄
賬號
Kermit
密碼:
superSecret
可以進入系統
8、把文件 taskflow.bpmn 復制到項目中,放在 main/resources下面;
修改主程序入口:
由於taskflow.bpmn 的流程id為Process_1,所以這里填寫Process_1
9、重啟spring boot;
訪問 localhost:8080
登錄后可以查看到新增了一個task
示例代碼
https://github.com/bellagoodday/camundabpm.git
可能遇到的問題
1、
no processes deployed with key 'Process': processDefinition is null
原因:
1)檢查bpmn 文件的id和請求的id 是否一致;從以下圖片可看出,bpmn的id 是Processaaa,然而請求的id是 Process .需要修改請求的id為 Processaaa 即可
2)還可能的原因是;在 main/resource下面沒有添加META-INF文件,切記還需要在下面加一個process.xml空文件哦