提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
转帖|其它|编辑:郝浩|2011-09-26 14:03:24.000|阅读 571 次
概述:本文主要介绍工作流如何第三方jsp表单集成,希望对大家有帮助。
# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>
工作流系统集成表单的过程,其实就是一个调用流程引擎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达到流程的流转。
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@pclwef.cn
文章转载自:网络转载面对“数字中国”建设和中国制造2025战略实施的机遇期,中车信息公司紧跟时代的步伐,以“集约化、专业化、标准化、精益化、一体化、平台化”为工作目标,大力推进信息服务、工业软件等核心产品及业务的发展。在慧都3D解决方案的实施下,清软英泰建成了多模型来源的综合轻量化显示平台、实现文件不失真的百倍压缩比、针对模型中的大模型文件,在展示平台上进行流畅展示,提升工作效率,优化了使用体验。
本站的模型资源均免费下载,登录后即可下载。模型仅供学习交流,勿做商业用途。
本站的模型资源均免费下载,登录后即可下载。模型仅供学习交流,勿做商业用途。
本站的模型资源均免费下载,登录后即可下载。模型仅供学习交流,勿做商业用途。
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@pclwef.cn
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢