在上一节中,我们已经成功画出了 Activiti 流程图,接下来就是部署并启动流程,并真正的运用所画出的流程图,来进行开发项目了。当然了,在这之前,我们需要启动一下项目,按照真实的项目流程来运行。在这里,由于前端页面比较耗费时间,可以下载我这边提供的页面 (http://download.csdn.net/detail/samile6899/9640616 ),项目导入到Eclispse 中,运行起来的项目是这样的:
项目成功跑起来的话,大致的效果就是这样的差不多。然后的话,我们首先需要开始部署流程以及下部署的类和方法了……
1,点击 “ 流程管理 ”-----》“ 部署管理 ”,会看到这样的画面:
2,把之前的 Activiti 流程图压缩成一个ZIP文件,接下来开始编写相应的处理方法:
/**
* 部署管理首页显示
* @return
*/
public String deployHome(){
//1:查询部署对象信息,对应表(act_re_deployment)
List<Deployment> depList = workflowService.findDeploymentList();
//2:查询流程定义的信息,对应表(act_re_procdef)
List<ProcessDefinition> pdList = workflowService.findProcessDefinitionList();
//放置到上下文对象中
ValueContext.putValueContext("depList", depList);
ValueContext.putValueContext("pdList", pdList);
return "deployHome";
}
/**
* 发布流程
* @return
*/
public String newdeploy(){
//获取页面传递的值
//1:获取页面上传递的zip格式的文件,格式是File类型
File file = workflowBean.getFile();
//文件名称
String filename = workflowBean.getFilename();
//完成部署
workflowService.saveNewDeploye(file,filename);
return "list";
}
/**
* 查看流程图
* @throws Exception
*/
public String viewImage() throws Exception{
//1:获取页面传递的部署对象ID和资源图片名称
//部署对象ID
String deploymentId = workflowBean.getDeploymentId();
//资源图片名称
String imageName = workflowBean.getImageName();
//2:获取资源文件表(act_ge_bytearray)中资源图片输入流InputStream
InputStream in = workflowService.findImageInputStream(deploymentId,imageName);
//3:从response对象获取输出流
OutputStream out = ServletActionContext.getResponse().getOutputStream();
//4:将输入流中的数据读取出来,写到输出流中
for(int b=-1;(b=in.read())!=-1;){
out.write(b);
}
out.close();
in.close();
//将图写到页面上,用输出流写
return null;
}
/**
* 删除部署信息
*/
public String delDeployment(){
//1:获取部署对象ID
String deploymentId = workflowBean.getDeploymentId();
//2:使用部署对象ID,删除流程定义
workflowService.deleteProcessDefinitionByDeploymentId(deploymentId);
return "list";
}
在之前的传上去的项目中,这些方法都是写好的。大家可以对照着代码,看明白意思后,试着编写下;其实主要是几个步骤,想明白就好了:
a),当你点击 “ 部署管理 ”菜单的时候,首先需要到数据中查找已经部署过的流程,然后显示出来,所以需要写查询方法;
b),在点击 “ 部署管理 ”菜单之后,页面也加载完毕之后,需要上传Activiti流程图的ZIP包进行解析,然后部署该流程,所以要写该方法;
c),在点击 “ 部署管理 ”菜单之后,页面也加载完毕之后,你会看到已经部署过的流程,那么你想要看下流程图片的时候,需要写该方法;
d),在点击 “ 部署管理 ”菜单之后,页面也加载完毕之后,你发现你画的流程图画错了,重新删掉,所以你需要些删除的方法;
最后,流程被成功部署的话,页面会自动刷新,最终的效果图是这样的:
流程的话就是这样,在这一节也不说太多。主要以把项目成功跑起来并能够成功部署流程ZIP为主,如果这一步成功之后,就可以开始启动流程并结合相关业务来进行开发流程了。
**************************************************************************************************
注:Activiti 学习总结资料下载 (http://download.csdn.net/detail/samile6899/9829785)