工作流系统集成表单的过程,其实就是一个调用流程引擎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" οnsubmit="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达到流程的流转。

工作流集成第三方jsp表单相关推荐

  1. 15 个第三方Web 表单资源

    几乎每个 Web 站点都需要表单,不管是留言表单,还是会员注册表单,还是调查表或订单,尽管表单很有用,但对 Web 开发与设计者来说,表单的设计非常繁琐,本文搜集了15个免费或收费的第三方 Web 表 ...

  2. Winform开发框架中工作流模块的业务表单开发

    在我们开发工作流的时候,往往需要设计到具体业务表单信息的编辑,有些是采用动态编辑的,有些则是在开发过程中处理的,各有各的优点,动态编辑的则方便维护各种各样的表单,但是数据的绑定及处理则比较麻烦,而自定 ...

  3. Jsp表单提交数据乱码问题

    Jsp表单提交数据出现乱码 这个问提真的就纠结了好多天.太复杂了.说是涉及到到jsp文件的存储格式,又有解码格式,还有浏览器的解码格式. 1. 网上说了很多方法,我觉得更改server.xml文件这个 ...

  4. JSP表单提交中文乱码解决方案

    JSP表单提交中文乱码解决方案 参考文章: (1)JSP表单提交中文乱码解决方案 (2)https://www.cnblogs.com/sincoolvip/p/5746678.html (3)htt ...

  5. jsp表单提交中文乱码的解决

    jsp表单提交中文乱码的解决 <%@ page language="java" contentType="text/html; charset=utf-8 &quo ...

  6. Spring MVC JSP 表单标签教程

    在本教程中,我们将通过一个示例讨论所有与Spring MVC相关的JSP表单标签. 在本教程中,我们将使用下面重要的弹簧MVC表单标签进行讨论: 表单标签 文本字段标签 选择标签 复选框 无线电盒 密 ...

  7. TDOA_工作流名称、流程表单办理等页面生僻字无法显示

    TDOA_工作流名称.流程表单办理等页面生僻字无法显示 问题背景描述 PC端OA系统的工作流名称.工作流程办理页面的生僻字无法显示,但能存入到数据库中.例璟.赟等. 解决办法: 找到如下路径:D:/M ...

  8. 【JSP HTTP 状态码】【JSP 表单处理】【JSP 过滤器】【JSP Cookie 处理】【JSP Session】【JSP 文件上传】

    JSP HTTP 状态码 HTTP请求与HTTP响应的格式相近,都有着如下结构: 以状态行+CRLF(回车换行)开始 零行或多行头模块+CRLF 一个空行,比如CRLF 可选的消息体比如文件,查询数据 ...

  9. 老周谈低代码开发平台、工作流引擎、与表单引擎之间的关系

    低代码开发是最近几年比较火的一个概念,而工作流引擎,表单引擎是好多年以前的产物了.今天我们就聊聊三者之间的关系. 我是开源驰骋BPM公司的老周,是bpm系统的爱好者.研发者.探索者. 对上述三个模块问 ...

最新文章

  1. python中pos的用法_Python正则式的基本用法
  2. 未来智能社会的一砖一瓦都需要今天我们一点点的探索发现!
  3. 3.什么叫堆排序?与快速排序有什么不同?
  4. python中词云图怎样变成特殊图案_如何利用python画出一个多变的词云图?(1)...
  5. jquery让页面滚动到底部
  6. unix/linux命令“ls -l”选项输出结果详解
  7. python编程软件排行榜_PYPL 9月编程语言排行榜发布 Python一枝独秀
  8. python---(3)Python安装
  9. vb.net word 自定义工具栏_Word双面快速简捷打印?
  10. SQL Server 2008空间数据应用系列五:数据表中使用空间数据类型
  11. 阶段1 语言基础+高级_1-3-Java语言高级_08-JDK8新特性_第1节 常用函数接口_7_常用的函数式接口_Supplier接口...
  12. android模拟器模拟nfc功能吗,android – 开始使用NFC模拟器
  13. 一个简单的教学管理系统(SQL实现)
  14. HTML网页头部小图标
  15. Unity3D FingerGestures 手势插件使用
  16. java 转成数字,java汉字转成数字
  17. MeanTeacher文章解读+算法流程+核心代码详解
  18. 保持屏幕唤醒的几种方式总结
  19. Ubuntu通过samba winbind集成AD账号
  20. 云图说丨初识云速建站服务

热门文章

  1. 跟alex学python_跟着Alex学习python
  2. 蛮力法求最大字段和时间复杂度_只需十个字,让你掌握推拿手法的秘诀
  3. 2021-02-07 接口测试工具-Postman使用详解
  4. mysql 多表查询练习题_mysql多表查询练习
  5. java jediscluster_方便jediscluster操作的工具类
  6. swift中的@objc
  7. Swift初级入门【步步为营】
  8. Tesseract使用日记
  9. 利用opencv改变视频长宽
  10. 【自动驾驶】10.百度Apollo平台 事件通信机制