activiti开发注意事项
来源:互联网 发布:java 反射调用get方法 编辑:程序博客网 时间:2024/05/17 23:36
1, 画流程图
一个流程图必须有一个或一个以上默认流
流程判断两个流出的线一定要带上参数进行判断
流程图的权限分配:assignee(不包括),candidateUsers(哪些用户), candidateGroups(哪些角色)
2, 开启流程
ProcessInstance procInst = runtimeService.startProcessInstanceByKey("orderManage");
process.setB_obj_id(procInst.getId());
参数是流程图的ID,表示开启一个流程,流程开始,等待第一个人签收,返回的是流程的实列,可以得到流程ID。
3, 查询签收审批任务
// 根据当前人的ID查询
String username = this.getUser().getUserName();
identityService.setAuthenticatedUserId(username);
//当前人要审批的任务
TaskQuery todoQuery = taskService.createTaskQuery()
.taskAssignee(username).active()
.orderByTaskCreateTime().desc();
// 根据当前人未签收的任务
TaskQuery claimQuery = taskService.createTaskQuery()
.taskCandidateUser(username).active()
.orderByTaskId().desc().orderByTaskCreateTime().desc();
List<Task> todoList = todoQuery.list();
List<Task>unsignedTasks = claimQuery.list();
得到系统当前用户名,根据用户名得到这个用户当前要审批的任务和要签收的任务(一个流程可以包括好几个任务,任务是人去接收的,所以流程图的两个角色之间就是一个任务)
注意:这里返回的只是任务的实列,能够得到的是任务的taskId,taskName,
StringprocessInstanceId = task.getProcessInstanceId();
根据这个得到流程ID,因为我们存的工单是要存这个流程id的,所以能根据这个id找到对应的工单。
注意:这里要传入任务的taskid,因为下一个人签收的时候要根据这个taskId去进行签收任务。
4, 签收和审批任务
签收:taskService.claim(taskId, username);taskid是指任务id,表示签收哪个任务,username是指用户名,表示哪个用户去签收
审批:taskService.complete(taskId, map);taskId是指任务id,表示审批哪个任务,map可以穿入参数,一般审批要有两个分支,通过和不通过,参数要放进map里面。另外还可以传入别的参数,下一步得到。
5, 删除流程
runtimeService.deleteProcessInstance(processInstanceId,"deleteby applicant");传入流程id,结束一个流程。
6, 流程中用户角色
流程中用户角色用的特别多,其实流程主要就是这个用处。所以要对系统中的一些关于用户,部门,角色的方法做一些了解,这里用的比较多。
String username =this.getUser().getUserName();
得到用户名
User user =userService.loadUserByUsername(username);
根据当前用户名得到用户的信息。(user可以得到用户部门,但是这个是懒加载,只能在service中的到,不能再@Controller中得到。)
List<String>userRoleNames = userService.getUserRoleNames(user.getId());
根据用户名得到用户角色
7, 一些activiti中用到的表格
这些表格在系统用户表中,因为要喝用户做关联。
create view act_id_group as SELECT sr.NAME_ as ID_,1 asREV_,sr.NAME_CN as NAME_,null as TYPE_ from sys_role sr;
CREATE view act_id_info as SELECT su.USERNAME as ID_,1 asREV_,su.USERNAME as USER_ID_,null as TYPE_,null as KEY_,null asVALUE_,su.PASSWORD_ as PASSWORD_,null as PARENT_ID_ from sys_user su;
create view act_id_membership as SELECT su.USERNAME asUSER_ID_,sr.NAME_ as GROUP_ID_ from sys_userrole ur,sys_user su,sys_role srWHERE su.ID_=ur.USER_ID and ur.ROLE_ID=sr.ID_;
create viewact_id_user as SELECT su.USERNAME as ID_,1 as REV_,su.FULLNAME asFIRST_,su.NAME_PINYIN as LAST_,su.EMAIL_ as EMAIL_,su.PASSWORD_ as PWD_,null asPICTURE_ID_ from sys_user su;
创建四个视图,这四个本来是activiti中的表,我们只是和我们系统中的用户做了一个对应,所以用这几个视图来代替表格。
ACT_RU_TASK :系统正在跑的几个流程,一个流程被删除,记录相对应的被删除。
ACT_HI_PROCINST:任务记录表,做一步操作会有条记录,一个任务结束下一个任务会开始,一旦所有的任务都有结束时间了,那么流程也就结束了。
8, 两个流程图的角色分配
角色分配: 创建人:分公司运维考核牵头人(orderUser1)
初审:省专业室运维考核牵头人(orderUser2)
终审:分公司稽核项目经理权限(orderUser3)
角色分配: 创建人:省专业室运维考核牵头人(orderUser2)
初审:分公司稽核项目经理权限(orderUser3)
终审:专业室流程终审(orderUser4)
- activiti开发注意事项
- activiti的使用注意事项
- Activiti 开发环境搭建
- 准备Activiti开发环境
- 搭建Activiti开发环境
- Idea集成Activiti开发
- 【Activiti工作流】3.准备Activiti开发环境
- [ Activiti ] Spring 整合Activiti工作流开发
- Activiti工作流之准备Activiti开发环境
- 开发注意事项
- 开发注意事项
- 开发注意事项
- 开发注意事项
- 开发注意事项
- 开发注意事项
- activiti eclipse开发环境搭建
- activiti的组任务开发
- Activiti eclipse开发环境搭建
- Cocos2d-X 学习笔记 19 cocos2d-x学习之自动内存管理和常见宏
- mipi 调试经验
- C++检查内存泄露
- [IOS]iPhone文件系统NSFileManager
- virtio驱动分析之libvirt层的参数配置
- activiti开发注意事项
- delphi调用dll
- ios应用开发19——相机和相册的使用
- 必须在构造函数基/成员初始值设定项列表中初始化
- 走近云计算
- redis lua local 作用域
- 使用Spring @Async异步执行方法的笔记
- ofbiz最新版13.07.01环境搭建、安装(linux环境下)
- Xcode5和6共存时,如何发布应用到商店