1. ProcessEngineConfiguration类,主要加载activiti.cfg.xml配置文件
2. ProcessEngine类 帮我们快速得到各个service接口,并且可以生成activiti的工作环境 25张表生成
3. Service接口: 作用快速实现数据库25张表的操作
1.RepositorySercice
2.RuntimeService
3.TaskService
4.HistoryService
4.BPMN的ActivitiDesigener插件 IDEA工具中安装 ActivitiDesigener的注意细节
5.画出流程定义图
6.部署流程定义
方式一: 单个文件(bpmn文件,png文件)
//流程定义部署
public static void main(String[] args) {
ProcessEngine pProcessEngine = ProcessEngines.getDefaultProcessEngine();
//2.得到RepositoryService实例
RepositoryService repositoryService = pProcessEngine.getRepositoryService();
//3.进行部署
Deployment deployment = repositoryService.createDeployment()
.addClasspathResource("diagram/holiday.bpmn")//添加bpmn资源
.addClasspathResource("diagram/holiday.png")//添加图片文件
.name("请假流程")
.deploy();
//4.输出部署信息
System.out.println(deployment.getName());
System.out.println(deployment.getId());
}
方式二:先将bmpn文件,png文件压缩成zip文件,但是activiti最终也是以单个文件形式保存,说明activiti进行了解压工作
/Zip流程化部署
public static void main(String[] args) {
ProcessEngine pProcessEngine = ProcessEngines.getDefaultProcessEngine();
//2.得到RepositoryService实例
RepositoryService repositoryService = pProcessEngine.getRepositoryService();
//3.转化出zipInputStream流对象
InputStream resourceAsStream = ActivitiDeployment.class.getClassLoader().getResourceAsStream("diagram/holiday.zip");
ZipInputStream zipInputStream = new ZipInputStream(resourceAsStream);
//4.进行部署
Deployment deployment = repositoryService.createDeployment()
.addZipInputStream(zipInputStream)
//.addClasspathResource("diagram/holiday.bpmn")//添加bpmn资源
//.addClasspathResource("diagram/holiday.png")//添加图片文件
.name("请假流程")
.deploy();
//5.输出部署信息
System.out.println(deployment.getName());
System.out.println(deployment.getId());
}
7. 启动流程实例
public static void main(String[] args) {
//1.得到ProcessEngine对象
ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
//2.得到RunService对象
RuntimeService runtimeService = processEngine.getRuntimeService();
//3.创建流程实例
ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("holiday");
//4.输出实例相关对象
System.out.println("流程部署ID" + processInstance.getDeploymentId());
System.out.println("流程实例ID" + processInstance.getId());
System.out.println("活动ID" + processInstance.getActivityId());
}
8.查看任务
public static void main(String[] args) {
//1.得到ProcessEngine对象
ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
//2.TaskService
TaskService taskService = processEngine.getTaskService();
//3.流程定义key,负责人assignee来实现人物列表查询
List<Task> taskList = taskService.createTaskQuery()
.processDefinitionKey("holiday")
.taskAssignee("张三")
.list();
//4.任务列表展示
for (Task task : taskList) {
System.out.println("流程实例ID:" + task.getProcessInstanceId());
System.out.println("任务ID:" + task.getId());
System.out.println("任务负责人:" + task.getAssignee());
System.out.println("任务名称:" + task.getName());
}
}
9. 完成任务
//张三
public static void main(String[] args) {
//1.得到ProcessEngine对象
ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
//2.TaskService
TaskService taskService = processEngine.getTaskService();
//3.处理任务,结合当前任务查询操作,任务ID:7505
taskService.complete("7505");
}
10. 查看和完成任务(8.9一起执行)
//张三
public static void main(String[] args) {
//1.得到ProcessEngine对象
ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
//2.TaskService
TaskService taskService = processEngine.getTaskService();
//3.流程定义key,负责人assignee来实现人物列表查询
List<Task> taskList = taskService.createTaskQuery()
.processDefinitionKey("holiday")
.taskAssignee("张三")
.list();
for (Task task : taskList) {
//3.处理任务,结合当前任务查询操作,任务ID:10002
taskService.complete(task.getId());
}
}
Activiti的架构说明
最新推荐文章于 2024-08-12 13:09:35 发布