flowable流程設計 + springboot


  作為第一次接觸工作流小白,總結一下兩天學習成果。

  • 使用flowable畫流程圖。

  參考文章:https://www.jianshu.com/p/e8f4e9a7bd8a  (部署flowable)

       https://blog.csdn.net/weixin_44150993/article/details/117750490(flowable流程設計設計器組件用法)

 

  • 我這里就是用的請假流程的例子。這里設置的表單的字段和后面代碼中字段是統一的。

       

 

 

  •  流程創建好之后,點擊下載,將保存bpmn20文件到本地。
  • 流程圖畫好之后,接下來是用springboot整合flowable.
  1. 導入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>

     

  2. 配置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

     

  3. 在resources目錄下創建processes文件夾。將下載下來的bpmn文件放到processes文件夾下。啟動項目,springboot會自動啟動流程。啟動成功后,可以在數據庫中看到自動生成的表。
  4. 最后寫一個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(); }
    }
  5. 測試。地址欄輸入:http://localhost:8081/requestholiday?userName=小張&days=6&reason=病假

     

     


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM