报错信息:org.activiti.engine.ActivitiObjectNotFoundException: no deployed process definition found with id 'qingjia'
解决:将startProcessInstanceById()方法改为startProcessInstanceByKey()
//启动流程实例
@Test
public void startProcess() {
ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("qingjia");// xml中的<process id="qingjia" name="请假" isExecutable="true">
System.out.println("processInstance.getProcessDefinitionId() = " + processInstance.getProcessDefinitionId());
System.out.println("processInstance.getId() = " + processInstance.getId());
System.out.println("processInstance.getActivityId() = " + processInstance.getActivityId());
}
思路:流程部署时设置的name当成KEY,但是实际部署成功后的KEY值是流程图属性中的ID。此ID可通过流程图的Properties属性查看和设置。也可通过部署后返回的ID,从ACT_RE_PROCDEF表中按照DEPLOYMENT_ID_查询出准确的KEY值
数据库中的表