您现在的位置:主页 > 高级应用 > >

activiti5.17教程之流程的启动(startFlow)



时间: 2015-05-20 14:59     来源 : IT学习者      点击:

关键词: activiti    工作流    实例源码   


目录页:《activiti5.17.0工作流实例精简教程


接着上篇继续,经过部署后,便开始提交请假单启动流程了。

itxxz.com


jsp代码如下:
 
IT学习者(www.itxxz.com)

  1. <%@ page language="java" contentType="text/html; charset=UTF-8"  
  2.     pageEncoding="UTF-8"%>  
  3. <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>  
  4. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">  
  5.   
  6. <html>  
  7.     <head>  
  8.     <title>开始请假</title>  
  9.     </head>  
  10.     <body>  
  11.   
  12.     <form action="startFlow" method="post">  
  13.         姓名:<input type="text" name="name" value="" /><br />   
  14.         请假天数:<input type="text" name="leaveCount" value=""><br />   
  15.         请假原因:<input type="text" name="leaveReason" value=""><br />   
  16.         <input type="submit" value="提交">  
  17.     </form>  
  18. </body>  
  19. </html>

内容来自www.itxxz.com


填写完请假信息后进行提交,java后台代码:

LeaveController.java 官网:http://www.itxxz.com

  1. /** 
  2.  * 获取流程实例,启动流程 
  3.  * @author www.itxxz.com 
  4.  */  
  5. @RequestMapping("startFlow")  
  6. public void startFlow(WfLeave entity) {  
  7.   
  8.     logger.debug("获取流程实例...");  
  9.     logger.debug("entity:"+entity);  
  10.     logger.debug("entity_name:"+entity.getName());  
  11.     ProcessInstance pi = WFUtil.startInstanceByKey(InstanceUtil.WFLEAVE_INSTANCEKEY);  
  12.     entity.setLeaveid(UUID.randomUUID().toString());  
  13.     entity.setInstanceid(pi.getId());  
  14.     logger.debug("开始入库...");  
  15.     wfLeaveService.insertWfLeave(entity);  
  16.     logger.debug("该申请已成功保存!");  
  17. }  

上述代码第11行的InstanceUtil.WFLEAVE_INSTANCEKEY 的就是我们的流程id:myLeaveProcess 在 《activiti5.17教程之流程图的构建》中流程图所定义的流程id

itxxz.com



WFUtil.java(完整代码 可参考 《activiti5.17教程之工具类WFUtil》)

IT学习者(www.itxxz.com)

  1. /** 
  2.  * 创建流程实例, 即xml文件中的process id="Leave" 
  3.  */  
  4. public static ProcessInstance startInstanceByKey(String instanceByKey) {  
  5.     logger.debug("启用流程实例");  
  6.     RuntimeService runtimeService = processEngine.getRuntimeService();  
  7.     logger.debug("流程已经可以应用");  
  8.     ProcessInstance instance = runtimeService  
  9.             .startProcessInstanceByKey(instanceByKey);  
  10.     logger.debug("已返回流程实例instance,id为:" + instance.getId());  
  11.     logger.debug("获取instance:" + instance);  
  12.     logger.debug("获取instance_id:" + instance.getId());  
  13.     logger.debug("获取instance_ProcessDefinitionId:"  
  14.             + instance.getProcessDefinitionId());  
  15.     logger.debug("获取instance_ProcessInstanceId:"  
  16.             + instance.getProcessInstanceId());  
  17.     logger.debug("获取instance_BusinessKey:" + instance.getBusinessKey());  
  18.   
  19.     return instance;  

IT学习者(www.itxxz.com)
流程启动成功后,我们定义的表 wf_leave 中便可查找到请假信息了:



activiti也在相关表中插入或跟新了信息,日志局部截图如下:


  IT学习者(www.itxxz.com)







文章除注明转载外,均为IT学习者原创或编译
欢迎任何形式的转载,但务必请以超链接形式注明出处
本文出自:IT学习者
链接地址:http://www.itxxz.com



微信公众号:喝咖啡的螃蟹

喝咖啡的螃蟹
评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-->