activity5的集成记录

1       集成环境

  • Spring3.2
  • Activity 5.13

2       请假流程实例

2.1     业务流程

  • 员工发起请假请求,并且员工在请假完成前的任何阶段都可以销假。
  • 项目经理审批首先审批流程,1天以上的需要部门经理审批,不同意时退回员工重新调整假期。

 

2.2     activity流程图

 

3       流程集成点

3.1     流程部署

测试中使用数据库存储流程定义文件,通过界面来部署流程。

 

Deployment deployment = processEngine.getRepositoryService()

        .createDeployment().name(dbFlow.getFlowName())

        .addInputStream(dbFlow.getFlowName()+".bpmn20.xml",

               new ByteArrayInputStream(content.getBytes())).deploy();

 

3.2     流程运行

3.2.1  启动流程

在启动流程的时候可以根据实际需要做相关处理.

//任务节点上定义的formProperty可以集成到启动变量里面

/*

List<FormProperty> formProperties = startFormData.getFormProperties();

if(formProperties!=null){

         for(FormProperty formProperty:formProperties){

                   variables.put(formProperty.getId(), formProperty.getValue());

         }

}

*/

//initiator相关实现  processEngine.getIdentityService().setAuthenticatedUserId(initiator);

processEngine.getRuntimeService().startProcessInstanceByKey(processDefinitionKey, variables);

 

/*

如果想在流程中加入业务表数据,可以启用businessKey

processEngine.getRuntimeService().startProcessInstanceByKey(processDefinitionKey,businessObject.getBusinessKey(), variables);

*/

 

 

3.2.2  执行任务

参数处理和启动时类似

processEngine.getTaskService().complete(taskId, taskVariables);

3.3     任务查询

//使用TaskService,可以完成大部分的查询要求。

TaskService taskService = processEngine.getTaskService();

 

3.4     流程表单

使用spring mvc发布表单地址,借用task中的formKey属性。

3.4.1  启动表单

使用spring mvc,约定界面的jsp查找位置:

比如WEB-INF/pages/workflow/run/flow1/startForm.jsp

 

ModelAndView model = new ModelAndView();

 

StartFormData startForm = flowRunManager.getStartFormData(flowKey);

String formKey = startForm.getFormKey();

 

List<FormProperty> formProperties = startForm.getFormProperties();

for(FormProperty formProperty:formProperties){

         model.addObject(formProperty.getId(),formProperty.getValue());

}

 

Object processDefinitionIdVar = startForm.getProcessDefinition().getKey();

String processDefinitionId = processDefinitionIdVar.toString();

 

model.addObject("processDefinitionId", processDefinitionId);

model.setViewName("workflow/run/"+processDefinitionId+"/"+formKey);

3.4.2  任务表单

和启动表单处理类似

 

3.5     自动任务

通过delegateExpression属性可以直接调用spring环境中实现了org.activiti.engine.delegate.JavaDelegate接口的bean

<serviceTask id="userTask_node3" name="请假完成服务" activiti:delegateExpression="${vacationComplete}"/>

3.6     多结束

如果流程有多个结束,需要在endEvent里面配置terminateEventDefinition

<endEvent id="endEvent_node1">

<terminateEventDefinition/>

</endEvent>

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值