Activiti学习笔记(六)Activiti的流程引擎API和服务
引擎API是与Activiti交互的最常见方式。中心起点是ProcessEngine
,可以通过多种方式创建,如《Activiti学习笔记(三)获取ProcessEngine对象的多种方式》。
从ProcessEngine中,可以获得包含工作流BPM方法的各种服务。一下是Activiti的模型图
一共有7个服务分别执行了Activiti的部署、创建、启动、执行.....等
首先通过RepositoryService部署服务,代码如下:
Deployment deployment = processEngine.getRepositoryService().createDeployment().addClasspathResource("diagrams/HelloWord.bpmn").deploy();
RuntimeService启动服务,代码如下:
ProcessInstance pi = processEngine.getRuntimeService().startProcessInstanceByKey("HelloWord");
TaskService执行服务,代码如下
processEngine.getTaskService().complete(taskId)
HistoryService历史任务管理服务,代码如下:
HistoryService historyService = processEngine.getHistoryService(); HistoricProcessInstance historicProcessInstance = historyService.createHistoricProcessInstanceQuery().processInstanceId(procId).singleResult();
IdentityService组织机构管理服务,代码如下:
List<User> authorizedUsers = identityService().createUserQuery().potentialStarter("processDefinitionId").list();
FormService任务表单管理服务,代码如下:
TaskFormdata FormService.getTaskFormData(String taskId)
ManagementService 服务管理,代码如下:
List<Task> tasks = taskService.createNativeTaskQuery() .sql("SELECT count(*) FROM " + managementService.getTableName(Task.class) + " T WHERE T.NAME_ = #{taskName}") .parameter("taskName", "gonzoTask") .list();
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· C++代码改造为UTF-8编码问题的总结
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 实操Deepseek接入个人知识库
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库