- 浏览: 717772 次
- 性别:
- 来自: 重庆
文章分类
最新评论
-
superchangme:
show it,you are you:authenticat ...
认证 (authentication) 和授权 (authorization) 的区别 -
深度交流社区:
说的很清楚,学习了
认证 (authentication) 和授权 (authorization) 的区别 -
mazhi4562qq:
你好, 可以请教个关于activiti定时边界事件的问题么?我 ...
Activiti定时任务示例 -
落叶萧萧:
Spring MVC HelloWorld入门例子 -
daniaowansui:
什么垃圾东西?
使用Sping AOP记录操作日志和错误日志
最近项目需要工作流,所以就准备采用jBPM4作为工作流引擎,
才开始接触,很多东西都是一步一步摸索出来的,当然了,也搜索了一些文章,下面就是这两天使用jBPM4做的一个请假的例子.
流程比较简单,流程图如下:
本来作为才开始学习JBPM的人来说,最好的方法就是先运行起程序,然后学习就要方便很多。
下面是我的servlet文件;
好了,要想查看详细的源码,下载我上传的压缩包吧。
如果你使用的tomcat6, 出现java.lang.LinkageError这个错误的话,那么可以参考http://blog.csdn.net/ol_beta/article/details/5553473这个文章。
还有不要忘记添加JBPM的jar包哦
才开始接触,很多东西都是一步一步摸索出来的,当然了,也搜索了一些文章,下面就是这两天使用jBPM4做的一个请假的例子.
流程比较简单,流程图如下:
本来作为才开始学习JBPM的人来说,最好的方法就是先运行起程序,然后学习就要方便很多。
下面是我的servlet文件;
package com.vito.jbpm.servlet; import java.io.IOException; import java.io.PrintWriter; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Set; import javax.servlet.RequestDispatcher; import javax.servlet.ServletConfig; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import org.jbpm.api.Configuration; import org.jbpm.api.Execution; import org.jbpm.api.ExecutionService; import org.jbpm.api.ProcessDefinition; import org.jbpm.api.ProcessEngine; import org.jbpm.api.ProcessInstance; import org.jbpm.api.RepositoryService; import org.jbpm.api.TaskService; import org.jbpm.api.model.ActivityCoordinates; import org.jbpm.api.task.Task; /** * 请假流程Servlet * @author 周文滔 <zhouwentao16@gmail.com> * @time 2012-5-27 下午05:39:32 */ public class LeaveServlet extends HttpServlet { private ProcessEngine processEngine = null; private RepositoryService repositoryService = null; private ExecutionService executionService = null; private ProcessInstance processInstance = null; private TaskService taskService = null; public LeaveServlet() { super(); } public void init(ServletConfig config) throws ServletException { super.init(config); // 获取流程引擎 processEngine = new Configuration().buildProcessEngine(); repositoryService = processEngine.getRepositoryService(); executionService = processEngine.getExecutionService(); taskService = processEngine.getTaskService(); } public void destroy() { super.destroy(); // Just puts "destroy" string in log } public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request, response); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { process(request, response); } protected void process(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String action = request.getParameter("action"); HttpSession session = request.getSession(); if (action.equals("leave")) { request.getRequestDispatcher("").forward(request, response); } else if (action.equals("list")) { String username = (String) session.getAttribute("username"); List<ProcessDefinition> pdList = repositoryService .createProcessDefinitionQuery().list(); List<ProcessInstance> piList = executionService .createProcessInstanceQuery().list(); List<Task> taskList = taskService.findPersonalTasks(username); session.setAttribute("pdList", pdList); session.setAttribute("piList", piList); session.setAttribute("taskList", taskList); request.getRequestDispatcher("list.jsp").forward(request, response); }else if (action.equals("start")) { Map map = new HashMap(); map.put("user",session.getAttribute("username")); executionService.startProcessInstanceById(request.getParameter("id"),map); request.getRequestDispatcher("leave?action=list").forward(request, response); }else if (action.equals("submit")) { String taskId = request.getParameter("taskId"); int day = Integer.parseInt(request.getParameter("day")); String reason = request.getParameter("reason"); reason = new String(reason.getBytes("ISO-8859-1"),"UTF-8"); Map map = new HashMap(); map.put("days", day); map.put("reason", reason); taskService.completeTask(taskId, "to_teacher",map); request.getRequestDispatcher("leave?action=list").forward(request, response); }else if (action.equals("view")) { String id = request.getParameter("id"); processInstance = executionService.findProcessInstanceById(id); Set<String> activityNames = processInstance.findActiveActivityNames(); ActivityCoordinates ac = repositoryService.getActivityCoordinates(processInstance.getProcessDefinitionId(),activityNames.iterator().next()); request.setAttribute("ac", ac); request.getRequestDispatcher("view.jsp").forward(request, response); }else if (action.equals("deploy")) { repositoryService.createDeployment().addResourceFromClasspath("leave.jpdl.xml").deploy(); }else if(action.equals("sh")){ String taskId = request.getParameter("taskId"); String result = request.getParameter("result"); result = new String(result.getBytes("ISO-8859-1"), "UTF-8"); System.out.println(result); taskService.completeTask(taskId, result); request.getRequestDispatcher("leave?action=list").forward(request, response); } } }
好了,要想查看详细的源码,下载我上传的压缩包吧。
如果你使用的tomcat6, 出现java.lang.LinkageError这个错误的话,那么可以参考http://blog.csdn.net/ol_beta/article/details/5553473这个文章。
还有不要忘记添加JBPM的jar包哦
- leave.rar (49.7 KB)
- 下载次数: 84
发表评论
-
你真的会数钱吗?
2014-04-15 16:22 1640摘要:货币,记账相关的领域模型,使用值对象 快年底了,假如 ... -
基于Pushlet和ExtJS3的Web即时通讯应用
2013-07-09 17:01 0前段时间学习了Pushlet,再加上网上也搜索了一下这方面的一 ... -
@MatrixVariable的使用
2013-07-08 16:03 15974在Spring3.2 后,一个@MatrixVariable出 ... -
SpringMVC中form:select的使用
2013-07-08 15:40 63167最近使用Spring MVC的多,发下在Spring MVC下 ... -
Hibernate Transformers之三种结果转换说明
2013-06-06 22:57 13629在hibernate使用的过程中.我们通常需要对结果进行解释. ... -
Pushlet白皮书中文版下载
2013-04-23 11:36 1840最近研究Pushlet的比较多,确实觉得资料文档比较少呀。 分 ... -
Pushlet二次开发重点
2013-04-22 16:16 45621 Pushlet自带事件源分析 Pushl ... -
Maven+SVN+jenkins在linux的环境搭建
2013-03-20 17:14 4646就来工作上用到了这几个东西来做项目的持续集成管理 以前看《M ... -
Linux下的端口被占用解决办法
2013-03-20 17:02 1694在重启tomcat的时候,报错: java.net.Bin ... -
项目启动报错: Acquisition Attempt Failed!!!
2013-03-20 16:58 6411项目启动报错: Acquisition Attempt Fai ... -
Struts2标签调用静态方法
2012-12-14 16:13 2060这几天使用工作流的时候,很多地方在页面需要调用静态方法获取内容 ... -
Activiti获取历史任务信息
2012-12-06 22:42 15622在项目中的工作流操作中,需要用到工作流的流程历史信息列表显示, ... -
JSP页面调用Spring容器注入的Bean
2012-12-04 15:55 3307首先在jsp中导入: <jsp:directive.pa ... -
Activiti结合Spring自动部署流程资源
2012-12-03 15:01 12545Activiti 整合spring的时候,提供了一个自动部署的 ... -
无限级菜单数据库设计
2012-11-14 14:59 10095第一种方案: 表为两张,一张分类表,一张信息表。 表1: ... -
Hadoop:java.io.IOException: Tmp directory
2012-08-30 11:16 2869今天在机器上搭建Hadoop测试,第一次运行: bin/had ... -
多多研究Spring3源码
2012-08-14 15:58 1557最近自己写一个Ioc容器。 基本上全部采用直接方式支持Ioc, ... -
Spring MVC HelloWorld入门例子
2012-07-05 21:36 61795本例子为你讲解在spring3中如何使用基于注解的mvc框架. ... -
Hibernate:no row with the given identifier exists
2012-05-05 10:10 2362ObjectNotFoundException: no ... -
使用Sping AOP记录操作日志和错误日志
2012-04-20 22:59 8947使用AOP进行日志记录 我们应该首先思考使用哪一种类型的通知 ...
相关推荐
【jbpm4.4+s2sh请假流程例子】是一个典型的结合了jbpm4.4工作流引擎和Struts2、Spring、Hibernate(S2SH)框架的实战项目,旨在演示如何在企业级应用中实现一个完整的请假流程。在这个例子中,jbpm4.4作为流程管理的...
【jbpm4的员工请假例子原码】是一个基于jbpm4流程引擎的示例项目,展示了如何在企业中实现一个简单的员工请假流程。这个Web项目是完全开源的,可以通过Eclipse这样的集成开发环境来打开和运行,对于学习和理解jbpm4...
JBPM5工作流引擎 S2SH+JBPM4.4开发工作流的一个完整的请假流程例子。带有文档教程和所有源码+JAR包。在网上找了半天jbpm6\jbpm7的资料,都很少。所以 环境:Myeclipse2015 JDK1.7 mysql 5.0 Struts2+Spring3.1 1...
【jbpm4web请假例子】是一个基于JBPM4工作流引擎的示例应用,它演示了如何在Eclipse环境中开发和部署一个简单的请假流程。这个例子可以帮助开发者理解工作流管理系统的基本概念,以及如何将它们集成到实际的Web应用...
【jbpm4.4-请假流程】是一个基于Java开发的流程引擎示例,主要用于演示如何在企业级应用中实现请假流程。jbPM是Java Business Process Management的缩写,它是一个开源的工作流和业务流程管理系统,提供了对BPMN 2.0...
【JBPM4:一个初级了解的请假流程实例】 JBPM(Java Business Process Management)是一款开源的工作流管理系统,它提供了一套完整的解决方案,用于设计、执行和管理业务流程。JBPM4是JBPM的一个版本,专注于简化...
【JBPM4.3工作流请假流程例子】是基于Myeclipse8.5M和JBPM4.3的集成应用,旨在演示如何构建一个实际的请假流程。在本文中,我们将深入探讨JBPM(Java Business Process Management)的核心概念,以及如何在实际开发...
此实例包括的是一个员工请假审批的流程实例,和流程相关的代码以及相应的测试代码。此流程在Eclipse3.1.2 ,JBoss-IDE 1.6环境下测试通过。 说明,这篇文章说使用的流程实例是,学习《一个JBPM工作流管理示例》文章中...
jbpm4.4整合s2sh 请假流程例子,项目很好,是学习JBPM的很好的例子,已经测试过,很好用,可以下载后好好研究一下
【jbpm4.4请假例子】是一个基于jbpm4.4流程引擎的示例项目,它展示了一个在Eclipse环境中开发的请假流程。jbPM(Java Business Process Management)是一个开源的工作流和业务流程管理框架,它允许开发者设计、执行...
在这个例子中,我们可能看到一个请假流程的实现。这个流程可能包括申请、审批、驳回等环节,涉及不同角色如员工、部门经理和人力资源部门。通过jbpm4.3,我们可以定义每个角色的任务,设置审批规则,以及处理可能...
这个"jBPM4完整例子"是一个基于SSH(Struts2、Spring、Hibernate)框架集成jBPM4.4的请假流程应用,非常适合初学者了解如何在实际项目中运用jBPM4进行工作流开发。 首先,我们来详细了解一下SSH框架。SSH是Java Web...
在这个例子中,可能会有一个名为`jbpm-test`的部署单元,其中包含了请假流程的相关配置和定义。 3. **回退功能实现** 在业务流程中,回退功能允许用户或管理员撤销当前状态,回到之前的某个步骤。JBPM提供了API来...
4. **jbpm服务任务和人工作流**:在请假流程中,可能会涉及到服务任务,如调用后台业务系统进行请假天数计算。同时,人工作流(Human Task)是流程中不可或缺的部分,例如请假申请需要经理审批,这就涉及到任务的...
**jbpm请假例子完整源代码**是一套基于jbpm流程引擎的示例应用,它用于演示如何在实际项目中利用jbpm实现一个简单的请假流程。jbpm是一个开源的工作流管理系统,它提供了强大的业务流程建模、执行和管理能力。本示例...
【jbpm 请假示例 简易 修改版】是一个基于jbpm工作流引擎的简单应用实例,旨在演示如何在企业级环境中实现一个请假流程。jbpm是一个开源的工作流管理系统,它提供了完整的业务流程自动化解决方案,包括流程设计、...
在jbpm3.2.2入门例子中,你可以看到如何创建简单的流程,如请假审批流程,包括开始节点、结束节点、用户任务(User Task)以及审批决策节点(Decision Node)。 在jbpm中,任务管理是重要的部分,它涉及到任务的...
1. **LeaveJbpm**:这个示例可能是一个请假流程的应用,展示了如何在jbpm4中定义一个工作流,包括请假申请、审批等步骤。用户可以通过编写Java代码启动流程实例,同时也可以设置监听器来跟踪流程状态的变化,实现...
`leave.jpdl.xml`文件就是这样一个例子,它定义了一个请假流程,包括各个步骤、转移条件和参与者等。通过SSH框架,这些流程定义可以在运行时动态加载和执行。 2. **Spring集成**:Spring作为核心容器,可以管理jbPM...