JBPM API初识
来源:互联网 发布:亳州市视频数据平台 编辑:程序博客网 时间:2024/05/16 06:23
JBPM为我们提供了一系列管理流程的服务。从定义流程,到实例化流程定义,流程实例执行过程中,对流程的管理,流程结束后,纳入历史流程,进行管理。JBPM的流程管理,提供了完整的API,提高了流程执行的效率。
JBPM提供的服务API为我们实现了:
(1)流程部署
(2)流程实例
(3)流程任务
(4)流程历史
ProcessEngine提供了6个服务API。ProcessEngine是由Configuration类构建的,即工作流引擎根据配置产生。
(1)RepositoryService——流程资源服务的接口。提供对流程定义的部署、查询、删除等操作
(2)ExecutionService——流程执行服务的接口。提供启动流程实例、“执行”推进、设置流程变量等操作。
(3)ManagementService——流程管理控制服务的接口。
(4)TaskService——任务服务接口。提供对任务的创建、提交、查询、保存、删除等操作。
(5)HistoryService——流程历史服务接口。提供对历史流程实例、历史活动实例等记录的查询。
(6)IdentityService——身份认证服务的接口。提供对流程用户、用户组以及组成员关系的相关服务。
privateRepositoryService repositoryService;//部署流程服务
privateExecutionService executionService;//流程执行服务
privateTaskService taskService;//任务服务
privateHistoryService historyService;//历史服务
privateManagementService managementService;//流程管理服务
privateIdentityService identityService;//身份认证服务
ProcessEngineprocessEngine = Configuration.getProcessEngine();
repositoryService=processEngine.getRepositoryService();
executionService=processEngine.getExecutionService();
taskService=processEngine.getTaskService();
historyService=processEngine.getHistoryService();
managementService=processEngine.getManagementService();
identityService=processEngine.getIdentityService();
}
1,部署流程定义
public void deploy(){
repositoryService.createDeployment().addResourceFromClasspath("task.jpdl.xml").deploy()
}
2,启动流程实例
public voidcreateInstance() {
ProcessInstanceprocessInstance = executionService.startProcessInstanceByKey("task");
print("流程实例ID", processInstance.getId());
}
3,获取个人任务
public void getPersonalTask(StringuserId) {
List<Task>tasks=taskService.findPersonalTasks(userId);//根据办理人名称获取个人任务
print("任务数量",tasks.size());
print("任务名称", tasks.get(0).getActivityName());
print("任务ID",tasks.get(0).getId());
}
4,获取组任务
public void getGroupTasks(String userId) {
List<Task> taskList =processEngine.getTaskService().findGroupTasks(userId);//根据办理人名称获取组任务
}
5,分配任务
public void assinTask(String taskId,String userId){
taskService.assignTask(taskId,userId);//将任务Id为taskId的任务分配给userId
}
6,拾取任务
public void taskTask(String taskId,String userId){
taskService.takeTask(taskId,userId);//用户userId拾取任务taskId
}
5,获取当前任务
public void getCurrentTask(String processInstanceId) { Stringname=executionService.createProcessInstanceQuery().processInstanceId(processInstanceId).uniqueResult().findActiveActivityNames().toString();
//根据流程实例Id获取当前正在执行的任务
print("当前节点名称:", name);
}
6,完成任务
public void completeTask(String taskId) {
taskService.completeTask(taskId);//根据任务Id,完成该任务
}
......
JBPM提供了整个流程管理的Service API,使一个流程实例走完它的整个生命周期过程。JBPM提供的API几乎完美,当然也有些许不够完善的地方,但是足够应用了。要想熟练使用JBPM为我们工作,熟悉API是第一步。
目前对高校中JBPM的应用安排,第一阶段:完成几个demo,目的是熟悉API;第二阶段:结合高校中具体业务,结合JBPM,完成几个实现效果;第三阶段:依据业务中JBPM的应用,对公共部分进行抽象;第四阶段:研究回退、会签、自由流;第五阶段:修正、完善;第六阶段:应用;第七阶段:维护、完善
目前处于第二三阶段,即,起步+提升阶段。
- JBPM API初识
- jBPM初识
- 初识jbpm
- Jbpm初识
- JBPM初识
- JBPM API
- 初识jbpm(一)
- 初识jbpm(二)
- org.jbpm.api.JbpmException
- JBPM API
- jbpm API整理
- 初识API
- jbpm——api介绍
- jbpm API的helloword实例
- 初识工作流 BPMN Activiti以及JBPM
- 初识反射API
- 初识百度API
- 初识百度地图API
- 实现正则表达式的*和?匹配
- 阶段总结
- 我的成长记录
- 学Unity时 遇到的问题
- Oracle补充日志及日志记录规则
- JBPM API初识
- 【个人情感】娘子写
- ORALCE EBS ALERT 初体验
- 【Object-C】多态
- [cpp,algorithm] FpTree_2_首次扫描数据库抽取项集_并根据支持度剪枝
- Android Material Design之Toolbar与Palette实践
- 整个 HTML 页面将被覆盖
- bzoj 3622: 已经没有什么好害怕的了
- 中小型软件产品解决方案模板