在Java中实现工作流通常涉及以下步骤:
以下是一个简单的示例,展示了如何使用Activiti工作流引擎在Java中实现一个基本的工作流:
import org.activiti.engine.RepositoryService;
import org.activiti.engine.RuntimeService;
import org.activiti.engine.TaskService;
import org.activiti.engine.repository.Deployment;
import org.activiti.engine.runtime.ProcessInstance;
import org.activiti.engine.task.Task;
public class SimpleWorkflowExample {
private RepositoryService repositoryService;
private RuntimeService runtimeService;
private TaskService taskService;
public void deployWorkflow() {
// 部署工作流定义
Deployment deployment = repositoryService.createDeployment()
.addClasspathResource("simple-workflow.bpmn20.xml")
.name("Simple Workflow")
.deploy();
}
public void startWorkflow(String processInstanceId) {
// 启动工作流实例
ProcessInstance processInstance = runtimeService.createProcessInstanceById(processInstanceId)
.start();
}
public void completeTask(String taskId) {
// 完成任务
Task task = taskService.createTaskQuery().taskId(taskId).singleResult();
if (task != null) {
taskService.complete(task.getId());
}
}
// 其他方法,如查询任务、获取流程定义等
}
在这个示例中,我们使用了Activiti的RepositoryService、RuntimeService和TaskService来部署、启动和管理工作流。首先,我们部署了一个名为"simple-workflow.bpmn20.xml"的工作流定义。然后,我们启动了一个工作流实例,并通过完成任务来推进工作流的执行。