作為第一次接觸工作流小白,總結一下兩天學習成果。
- 使用flowable畫流程圖。
參考文章:https://www.jianshu.com/p/e8f4e9a7bd8a (部署flowable)
https://blog.csdn.net/weixin_44150993/article/details/117750490(flowable流程設計設計器組件用法)
- 我這里就是用的請假流程的例子。這里設置的表單的字段和后面代碼中字段是統一的。
- 流程創建好之后,點擊下載,將保存bpmn20文件到本地。
- 流程圖畫好之后,接下來是用springboot整合flowable.
- 導入flowable和數據庫連接依賴。
<dependency> <groupId>org.flowable</groupId> <artifactId>flowable-spring-boot-starter</artifactId> <version>6.6.0</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.26</version> </dependency>
- 配置application.yml文件
spring: datasource: url: jdbc:mysql://127.0.0.1:3306/leaveflow?nullCatalogMeansCurrent=true&autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=UTC username: xxxxxx password: xxxxxx flowable: #關閉定時任務JOB async-executor-activate: false server: servlet: context-path: port: 8081
- 在resources目錄下創建processes文件夾。將下載下來的bpmn文件放到processes文件夾下。啟動項目,springboot會自動啟動流程。啟動成功后,可以在數據庫中看到自動生成的表。
- 最后寫一個controller測試一下。
@Controller
public class LeaveTestController { @Autowired private RuntimeService runtimeService; @Autowired private TaskService taskService; @Autowired private RepositoryService repositoryService; @Qualifier("processEngine") @Autowired private ProcessEngine processEngine; /** * 請假申請 * * @param userName 請假申請人姓名 * @param days 請假天數 * @param reason 請假理由 */ @RequestMapping(value = "/requestholiday") @ResponseBody public String addExpense(String userName, Integer days, String reason) { //啟動流程 HashMap<String, Object> map = new HashMap<>(); //這里的key和當時畫流程圖設置的表單字段是統一的 map.put("leave_name",userName); map.put("leave_days",days); map.put("leave_reason",reason); ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("leave", map); //這里的leave是流程id return "提交成功.流程Id為:" + processInstance.getId(); }
} -
測試。地址欄輸入:http://localhost:8081/requestholiday?userName=小張&days=6&reason=病假