目录
一、服务API
可以从ProcessEngine中获取工作流/BPM方法的工作服务。
- 获取流程引擎对象
ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
可以使用ProcessEngines.init()
和正确创建和关闭所有流程引擎ProcessEngines.destroy()
- RepositoryService
RepositoryService repositoryService = processEngine.getRepositoryService();
管理和操纵部署和流程定义的操作。
查询引擎已知的部署和流程定义。
挂起并激活流程定义。
检索各种资源。
- RuntimeService
RuntimeService runtimeService = processEngine.getRuntimeService();
处理启动流程定义的新流程实例。
存储和检索过程变量的服务。
查询流程实例和执行。
- TaskService
TaskService taskService = processEngine.getTaskService();
查询分配给用户或组的任务。
创建新的独立任务。这些是与流程实例无关的任务。
操纵任务分配给哪个用户或该任务涉及某种用户。
声明并完成任务。
- IdentityService
IdentityService identityService = processEngine.getIdentityService();
对组和用户进行管理。
- FormService
FormService formService = processEngine.getFormService();
介绍了启动表单和任务表单。
- HistoryService
HistoryService historyService = processEngine.getHistoryService();
访问所有历史数据。
- ManagementService
ManagementService managementService = processEngine.getManagementService();
允许检索有关数据库表和表元数据的信息。
作业的查询和管理操作。
- FilterService
FilterService filterService = processEngine.getFilterService();
创建和管理过滤器。
- ExternalTaskService
ExternalTaskService externalTaskService = processEngine.getExternalTaskService();
访问外部任务实例,外部任务实例独立于流程实例之外。
- CaseService
CaseService caseService = processEngine.getCaseService();
处理启动案例定义的新案例实例并管理案例执行的生命周期。
用于检索和更新案例实例的过程变量。
- DecisionService
DecisionService decisionService = processEngine.getDecisionService();
评估发布到流程引擎的决策。
二、查询API
- Java查询API:用于查询引擎实体(例如ProcessInstances,Tasks等)。
List<Task> tasks = taskService.createTaskQuery()
.taskAssignee("kermit")
.processVariableValueEquals("orderId", "0815")
.orderByDueDate().asc()
.list();
- REST查询API:用于查询引擎实体(如ProcessInstances,Tasks等)的REST API。
- 本地查询:如果查询API缺少您所需的功能(例如OR条件),则提供自己的SQL查询以检索引擎实体(如ProcessInstances,Tasks等)。
List<Task> tasks = taskService.createNativeTaskQuery()
.sql("SELECT count(*) FROM " + managementService.getTableName(Task.class) + " T WHERE T.NAME_ = #{taskName}")
.parameter("taskName", "aOpenTask")
.list();
long count = taskService.createNativeTaskQuery()
.sql("SELECT count(*) FROM " + managementService.getTableName(Task.class) + " T1, "
+ managementService.getTableName(VariableInstanceEntity.class) + " V1 WHERE V1.TASK_ID_ = T1.ID_")
.count();
- 自定义查询:使用完全自定义的查询和自己的MyBatis映射来检索自己的值对象或使用域数据加入引擎。
- SQL查询:将数据库SQL查询用于诸如“报告”之类的用例。