jbpm4.4 简单请假流程

Jbpm4.4  简单请假流程

这里是用jbpm4.4+Hibernate做的简单的请假流程(采用MyEclipse  8.6+ MySql)。

一.画流程图

       名称:leave.jpdl.xml

        

        说明:

            1.为apply任务节点设置属性:

                

              2.为teacherdo任务节点设置属性:

              

              3.为managerdo任务节点设置属性:        

             

              leave.jpdl.xml源码如下 :  

                    <?xml version="1.0" encoding="UTF-8"?>

                    <process name="leave" xmlns="http://jbpm.org/4.4/jpdl">

                      <start g="155,147,48,48" name="start1">

                              <transition to="apply"/>

                     </start>

                     <task assignee="#{user}" form="apply_do.jsp" g="231,188,92,52" name="apply">

                              <transition to="teacherdo"/>

                      </task>

                      <task assignee="teacher" form="teacher_do.jsp" g="326,282,92,52" name="teacherdo">

                            <transition g="-19,-13" name="agree" to="end1"/>

                            <transition g="-23,-4" name="disagree" to="managerdo"/>

                     </task>

                     <end g="384,446,48,48" name="end1"/>

                     <task assignee="manager" form="manager_do.jsp" g="492,345,92,52" name="managerdo">

                            <transition to="end1"/>

                    </task>

                 </process>

二.流程发布

        流程发布在deploy.jsp 页面中。核心代码如下:

       <%@ page import="org.jbpm.api.*" %>

       <%

        ProcessEngine processEngine = Configuration.getProcessEngine();

        RepositoryService repositoryService = processEngine

          .getRepositoryService();

        repositoryService.createDeployment().addResourceFromClasspath("leave.jpdl.xml").deploy();

        response.sendRedirect("apply.jsp");

%>

三.流程实例化

    3.1  流程启动

          l流程的启动在start.jsp页面中。 核心代码如下:

<%@ page import="org.jbpm.api.*" %>

    <%

ProcessEngine processEngine = Configuration.getProcessEngine();

ExecutionService executionService = processEngine

.getExecutionService();

Map map = new HashMap();

map.put("user", session.getAttribute("username"));

executionService.startProcessInstanceById(request

.getParameter("id"), map);

response.sendRedirect("apply.jsp");

%>

       3.2.流程任务管理

            3.2.1.申请

            通过获得任务id来获得任务(task.getId)进入到apply_do.jsp页面进行申请

               

             申请填完后提交到submit.jsp页面,完成任务。核心代码如下:

<%@page import="java.util.*,org.jbpm.api.*"%>

<%

ProcessEngine processEngine = Configuration.getProcessEngine();

TaskService taskService = processEngine.getTaskService();

String taskId = request.getParameter("taskId");

String owner = request.getParameter("user");

int day = Integer.parseInt(request.getParameter("day"));

String reason = request.getParameter("reason");

Map map = new HashMap();

map.put("day", day);

map.put("reason", reason);

taskService.completeTask(taskId, map);

response.sendRedirect("apply.jsp");

%>

        3.2.2 老师审核

             teacher登陆进入到apply.jsp中会看到自己需要处理的任务,点击查看跳转到teacher_do.jsp(也把任务的id传过来了),然后老师进行处理:

         

            老师审核后跳转到submit_teacher.jsp页面中(也把result传过来了),核心代码如下:

  <%@page import="java.util.*,org.jbpm.api.*"%>

  <%

ProcessEngine processEngine = Configuration.getProcessEngine();

TaskService taskService = processEngine.getTaskService();

String taskId = request.getParameter("taskId");

String result = request.getParameter("result");

taskService.completeTask(taskId, result);

response.sendRedirect("apply.jsp");

%>

          result为 agree则流程结束到达end 节点。Result disagree则流程到达managerdo节点。需要院长进行审核。

        3.2.3 院长审核

                 manager登陆进入到apply.jsp中会看到自己需要处理的任务,点击查看跳转到manager_do.jsp(也把任务的id传过来了),然后院长进行处理:

          

        院长点击提交后到达submit_manager.jsp页面对任务进行处理,核心代码如下:

<%@page import="java.util.*,org.jbpm.api.*"%>

<%

ProcessEngine processEngine = Configuration.getProcessEngine();

TaskService taskService = processEngine.getTaskService();

String taskId = request.getParameter("taskId");

taskService.completeTask(taskId);

response.sendRedirect("apply.jsp");

%>

    一个流程运行到此结束。

 

四.用户登录说明

        用户登录使用的是Servler+Hibernate +Filter处理,具体目录如下:

 

 

jsp页面目录

 

具体流程效果需要运行此项目才能体会到。

 资源下载

 

 

                                                                                                                                                                                                                               By  Mr.Z

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值