`
vvsuperman
  • 浏览: 26922 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

activiti api小结

 
阅读更多

 

FormService Activiti表单引擎产生的用户任务表单服务
HistoryService  得到已完成的工作流实例信息
IdentityService 认证服务,在工作流执行过程中进行用户查询、认证等操作
TaskService  任务服务,可以根据用户创建与查询所分配的任务等等
RepositoryService 用于发布,查询,删除,获取工作流定义
RuntimeService

开始和查询工作流实例,流程变量可以获取和设置

 

 

 

 

 

 

 

 

典型API详解:


1 RuntimService   
1)startProcessInstanceByKey 开始一个新的以工作流实例,注意bykey实际上指的是定义的工作流Id,附加了一个map信息

Map variableMap = new HashMap();
variableMap.put("isbn";, "123456";);
ProcessInstance processInstance =runtimeService.startProcessInstanceByKey(
"bookorder";, variableMap);

 


2 )createProcessInstanceQuery() 查询工作量实例

List instanceList = runtimeService
.createProcessInstanceQuery()
.processDefinitionKey("bookorder").list();   //返回所有以bookorder为id的实例,若是processDefinitionId则只返回在运行的实例

 


2 TaskServie

TaskServie最重要的是claim与complete两个方法
 1) claim调用claim的用户将变成该任务的所有人,其它用户将不能claim与complete该任务
 2) complete将会使完成任务,使流程向下进行

    上代码:

Task task = taskService.newTask();
task.setName("Test task");
task.setPriority(100);
taskService.saveTask(task);
assertNull(task.getAssignee()); //创建Task

IdentityService identityService =
activitiRule.getIdentityService();
User user = identityService.newUser("JohnDoe");
identityService.saveUser(user);//创建用户

taskService.addCandidateUser(task.getId(), "JohnDoe");
task = taskService.createTaskQuery()
.taskCandidateUser("JohnDoe")
.singleResult();
assertNotNull(task); // 将用户与任务关联

assertEquals("Test task", task.getName());
assertNull(task.getAssignee());

taskService.claim(task.getId(), "JohnDoe");//分配任务
task = taskService.createTaskQuery()
.taskAssignee("JohnDoe")
.singleResult();
assertEquals("JohnDoe", task.getAssignee());

taskService.complete(task.getId());//完成任务
task = taskService.createTaskQuery()
.taskAssignee("JohnDoe")
.singleResult();
assertNull(task);

 


3) 查询,如下:

Task task = taskService.createTaskQuery()
.taskCandidateGroup("sales") 
.singleResult();
singleResult() //查询sales组下所分配的任务,因为在该任务中唯一,因此可用返回唯一任务

    权限需要在工作流中定义

<userTask id="usertask1"
name="Complete order"
activiti:candidateGroups="sales">  //定义了sales组
<documentation>book order user task</documentation>
</userTask>

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics