《Activiti/Flowable 深入BPM工作流》- BPM任務如何關聯businessKey?

 

           《Activiti/Flowable  深入BPM工作流》- BPM任務如何關聯businessKey?

 

 

一. 問題

   1. BPM任務如何關聯businessKey?

   2. 爲什麼要關聯businesskey

 

二. 詳情

     2.1  任務爲什麼要進行關聯businessKey?

    解答: 在activiti實際應用時, 查詢代辦任務可能要顯示出業務系統的一些相關信息, 例如: 查詢待審批請假單任務列表, 需要將請假單的日期,請假天數等信息顯示出來,請假天數等信息在業務系統中存在, 而並沒有在activiti 數據庫中存在, 所以無法通過activiti查詢到請假天數等信息.

 

    2.2 那怎麼實現呢?

 解答: 在查詢代辦任務是,通過businessKey(業務標識)關聯業務系統的請假單表,查詢出請假天數等信息.

 

/**
     * 關聯businessKey如何實現?
     */
    public void connectBusinessKey() {

        // 1.獲取 ProcessEngine 引擎.
        ProcessEngineConfiguration configuration = ProcessEngineConfiguration
                .createProcessEngineConfigurationFromResource("activiti.cfg.xml");
        ProcessEngine processEngine = configuration.buildProcessEngine();

        // 2.創建 RuntimeService, TaskService對象
        RuntimeService runtimeService = processEngine.getRuntimeService();
        TaskService taskService = processEngine.getTaskService();

        // 3.通過 TaskService查詢到個人任務
        Task task = taskService.createTaskQuery().processDefinitionKey("studentHoliday")
                .taskAssignee("Daniel")
                .singleResult();

        // 4.通過 task對象,得到任務id
        String processInstanceId = task.getProcessInstanceId();

        // 5.通過流程實例id,得到流程實例對象.
        ProcessInstance processInstance = runtimeService.createProcessInstanceQuery()
                .processInstanceId(processInstanceId)
                .singleResult();

        // 6. 對象 processInstance對象, 得到 businessKey
        String businessKey = processInstance.getBusinessKey();

        // 7.根據 businessKey 就可以得到請假單的信息.
        System.out.println("businessKey: " + businessKey);
    }

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章