工作流系统集成第三方jsp表单

本文介绍如何将自定义表单系统与工作流引擎相结合,通过可视化编辑设置完成业务模块的实现,并实现流程流转。讨论了在不同框架下业务模块的实现方式及与工作流引擎的集成方法。

工作流系统集成表单的过程,其实就是一个调用流程引擎api函数的集成过程。

 

工作流引擎只负责抽象的流程的流转,业务模块的实现,是在业务表单中完成。在和工作流系统集成的时候,完成表单提交的同时,再调用流程引擎的api执行流程的流转。

 

通常一套业务系统中,业务模块的实现,体现在一套MVC的框架中,无论是struts,spring,jsf等等都是为实现分层管理的mvc的框架。

 

一个业务功能的实现,在m,v,c这三个层面都有体现,好的mvc框架,能通过简单的配置来达到新增模块,只需要实现v展现层,m层的和数据库的交互。且需要维护的地方很少,集成度越高的框架越接近于自定义表单引擎,类似半自动化的表单系统。

 

无论用那种mvc的框架,在集成工作流系统的时候,流程只负责业务的流转,业务千变万化,业务模块的实现还是不可避免的要自己实现。


当工作流系统集成自定义的表单系统时,自定义表单引擎也会包含一种mvc框架,达到自己的定制实现。只是有了表单引擎+表单设计器,能更快捷方便的实现业务模块。

 

应用自定义表单时,会有很多的优势,只需要通过可视化的编辑设置,就能完成业务模块的实现,达到人机交互。当然也无需重新编译打包,无需发布,就能直接运行了。和工作流引擎的集成也已经做好,只需要通过可视化的功能调用,就能完成了和工作流系统的集成。这些集成的代码已经封装好了,用户只需可视化的设置。无需了解引擎的api功能。

 

工作流系统结合自定义表单系统,可以开放给终端的用户去做可视化的设计流程,定义表单,完成新增业务流程的功能。

当流程引擎集成第三方的jsp表单时,程序员就需要调用流程引擎的api来完成流程的流转功能。


流程引擎对外提供一系列的api,可以读出流程定义文档的整个定义串,得到任意节点信息。通过节点id也能获得节点定义类对象。

 

 

下面是eworkflow工作流系统在集成jsp表单时的调用过程。
为了方便表述,没有使用框架来实现业务模块的提交,只在jsp页面中嵌入java的代码来说明如何调用流程引擎的api。

页面表单中增加隐藏域,保存流程相关的参数。


<form id="frm" method="POST" action="leave_new_submit.jsp" onsubmit="return checkInput()">
<input type="hidden" name="wfName" value="<%=wfName%>">
<input type="hidden" name="wfVersion" value="<%=wfVersion%>">
<input type="hidden" name="wfId" value="<%=wfId%>">
<input type="hidden" name="actionId" value="<%=actionId%>">

<input type="hidden" name="leaveId" value="<%=leaveId%>">

.........

流程名称,版本,流程实例id,动作id,业务表主键id

 


在表单提交的时候
 //获得流程参数
 String wfName = request.getParameter("wfName");
 String wfVersion = request.getParameter("wfVersion"); 
 String wfId = request.getParameter("wfId");
 String actionId = request.getParameter("actionId"); 
 String dynamicId = request.getParameter("dynamicInstanceId");
 
 
  //获得业务参数
 String leaveType = request.getParameter("leaveType");
 String leaveDays = request.getParameter("leaveDays");
 String startDate = request.getParameter("startDate");
 String endDate = request.getParameter("endDate");
 String applyDate = request.getParameter("applyDate");
 String remark = request.getParameter("remark"); 
 

 然后,再先做业务记录的提交。 

     //先做业务记录的保存
     StringBuffer sql = new StringBuffer();
     sql.append("insert into ex_leave_apply");
     sql.append("      (LEAVE_ID");
     sql.append("      ,START_DATE");
     sql.append("      ,REMARK");
     sql.append("      ,END_DATE");
     sql.append("      ,LEAVE_DAYS");
     sql.append("      ,APPLY_DATE");
     sql.append("      ,LEAVE_TYPE");
     sql.append("      ,APPLY_USER");
     sql.append("      ,WF_ID )");
     sql.append(" values ( '" + IDUtils.getEformRecNumNo(env.getCon(),"BBB") + "'");
     sql.append(",'" + startDate + "'");
     sql.append(",'" + remark + "'");
     sql.append(",'" + endDate + "'");
     sql.append("," + leaveDays);
     sql.append(",'" + applyDate + "'");
     sql.append(",'" + leaveType + "'");
     sql.append(",'" + userid + "'");
     sql.append("," + wfId );
     sql.append(")");

     DBUtils.go(env.getCon(),sql.toString());
    
    
再启动流程引擎
执行流程的api,达到流程的流转
     Workflow wf = new BasicWorkflow(userid,env);
     wf.doAction(Long.parseLong(wfId), Integer.parseInt(actionId), inputs);    
   

这样,就完成了一个流程节点的办理,既提交了业务数据,又执行了流程的流转。

 

 

在流程设计器中,节点上挂接jsp表单:



 

 

 


在流程实例运行时,执行到此节点,既打开挂接的jsp表单。



 

 

点击提交后,执行上面的代码过程,达到业务记录的提交,又调用流程引擎的api达到流程的流转。

 

 

 

 

 

 

 


标签: web开发平台, java工作流, 流程设计器, 自定义工作流, web工作流, 自定义表单, 工作流引擎, 工作流软件产品, web自定义表单, 电子表单

前 言 1 1 概 述 2 1.1 选题背景 2 1.2 组织结构 2 2 所用相关技术和方法 3 2.1 工作流 3 2.1.1 什么叫工作流 3 2.1.2 工作流发展 3 2.1.3 工作流的优点 3 2.2 MVC工作模式 4 2.2.1 MVC设计思想 4 2.2.2 MVC的具体实现 5 2.2.3 MVC的不足 6 2.3 JSP技术介绍 6 2.3.1 JSP的运行原理 7 2.3.2 JSP的生命周期 8 2.3.3 Servlet和JavaBean技术介绍 8 2.3.4 Java 虚拟机 9 2.3.5 JSP访问SQL Server 2000数据库 9 2.4 数据库后台环境配置 10 2.5 系统开发工具简介 10 2.5.1 Dreamweaver 10 2.5.2 MyEclipse 10 2.5.3 Tomcat 11 2.5.4 SQL Server2000 11 2.5.5 chs_sql2ksp3 12 3 系统需求分析 13 3.1 系统功能分析 13 3.2 系统性能分析 13 3.3 系统方案的确定和评价 13 4 系统总体设计 15 4.1 系统层次模块图 15 4.1.1 营业厅模块 15 4.1.2 收费管理模块 16 4.2 系统数据流程图 16 4.3 数据表设计 18 5 详细设计及编码 21 5.1 编写JAVABEAN 21 5.2 营业厅实现函数 21 5.3 收费厅主要的实现函数 22 5.4 JAVABEAN主要实现模块 22 5.4.1 中文字符格式的转换模块(Stringto.java) 22 5.4.2 自动生成验证码(Ran.java) 22 5.4.3 数据库的连接(ConnectionFactory.java) 23 5.4.4 数据库连接的关闭(DatabaseUtils.java)--只提供接口 23 5.4.5 密码修改模块(Common_fuction.java) 24 5.4.6 时间格式转换(timeBean.java) 24 5.4.7 数据统计(counthander.java) 25 5.4.8 营业厅的接口(luruaction.java) 27 5.4.9 营业厅的主要函数实现(luruhander.java) 28 5.4.10 收费厅的主要函数接口 32 5.5 管理员登陆模块 33 5.5.1 管理员登录 33 5.6 营业厅管理模块 36 5.6.1 Left.jsp页面 36 5.6.2 Work.jsp 40 5.6.3 customerlistinfo.jsp 41 5.6.4 allinfo.jsp 41 5.7 收费厅管理模块 42 5.7.1 Left.jsp 42 5.7.2 Work.jsp 43 5.7.3 Customerlistinfo.jsp 43 5.7.4 gongdan.jsp 43 6 系统测试与维护 45 6.1 测试目的 45 6.2 测试环境 45 6.3 系统测试 45 6.4 系统维护 45 7 开发难点与技术 46 7.1 主要程序实现的代码描述 46 7.1.1 验证码的自动生成 46 7.1.2 生成WORD工单 46 7.1.3 以一定的时间刷新页面 47 7.1.4 JSP中文问题的解决 47 7.2 在程序编码过程遇到的主要问题: 48 7.3 代码编写风格 49 7.4 我的不足: 49 结束语 50 致 谢 50
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值