使用步骤:
1.画流程图
2.流程定义部署
public static void main(String[] args) {
ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
RepositoryService repositoryService = processEngine.getRepositoryService();
Deployment deployment = repositoryService.createDeployment()
.addClasspathResource("diagram/holiday.bpmn")
.name("请假申请流程")
.deploy();
}
流程部署涉及到的三张表
3.启动流程实例
流程实例和流程定义的关系
public static void main(String[] args) {
ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
RuntimeService runtimeService = processEngine.getRuntimeService();
//创建实例需要key
ProcessInstance holiday = runtimeService.startProcessInstanceByKey("holiday");
System.out.println("流程部署ID" + holiday.getDeploymentId());
System.out.println("流程实例ID" + holiday.getId());
System.out.println("活动ID" + holiday.getActivityId());
}
4.流程负责人任务查询和处理
查询(不会影响表数据):
public static void main(String[] args) {
ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
TaskService taskService = processEngine.getTaskService();
List<Task> list = taskService.createTaskQuery()
.processDefinitionKey("holiday")
.taskAssignee("zhangsan")
.list();
for (Task task:list) {
System.out.println("流程实例ID:" + task.getProcessInstanceId());
System.out.println("任务ID:" + task.getId());
System.out.println("任务负责人:" + task.getAssignee());
System.out.println("任务名称:" + task.getName());
}
}
任务处理 :
public static void main(String[] args) {
ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
TaskService taskService = processEngine.getTaskService();
taskService.complete("2505");
}
任务处理涉及的表