《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对象,得到任务idString processInstanceId = task.getProcessInstanceId();// 5.通过流程实例id,得到流程实例对象.ProcessInstance processInstance = runtimeService.createProcessInstanceQuery().processInstanceId(processInstanceId).singleResult();// 6. 对象 processInstance对象, 得到 businessKeyString businessKey = processInstance.getBusinessKey();// 7.根据 businessKey 就可以得到请假单的信息.System.out.println("businessKey: " + businessKey);}