小飞鱼通达二开 让人脑洞大开的工作流二次开发(图文)

今天小飞鱼带给大家的是最近尝试的一次工作流的新的二次开发模式。这样的开发模式简直可以说已经突破了我们对工作流的使用的认识,完全跟使用其他的软件的模式是一样的。

下面,就先介绍一下软件实现的几个功能点。

1、实现人员、部门信息的单条选择

这个功能其实使用工作流本身的功能就能实现,只不过系统中的人员选择控件是可以选择多个人员或部门的,而不能限制只选择一个人,并且不能反回用户的id信息,这样如果出现重名的情况就会出现问题。通过一个小开发就实现了这个功能点。

2、隐藏列表控件没有用的部分

列表控件因为设计的是一个通用控件,因此上面除了平常用到的新增、删除按钮外,还额外有一个计算按钮,还有一个输入文本框。原来的样子是这样的:

通过程序开发,我们将不需要的部分进行了隐藏控制,界面清爽了很多。

3、控制选择公共文件柜目录并上传文件保存到列表控件

可以实现文件的批量上传,并将上传结果返回到列表控件中进行显示,并且可以从列表控件中直接打开上传的文件。

小飞鱼通过这样的一个工作流前端开发,对工作流的开发又有了新的认识。看到这些,是不是对工作流应用也有新的设计想法呢。

发布了348 篇原创文章 · 获赞 112 · 访问量 126万+
展开阅读全文

关于fire workflow的创建流程不能获取WorkflowSession

09-23

transactionTemplate.execute(new TransactionCallback() { @Override public Object doInTransaction(TransactionStatus arg0) { try { // 1、保存请假信息 leaveApplicationDAO.save(leaveApplicationInfo); // 2、创建流程实例 IWorkflowSession workflowSession = runtimeContext .getWorkflowSession(); IProcessInstance processInstance = workflowSession .createProcessInstance("LeaveApplicationProcess", currentUser == null ? "--" : currentUser .getId()); // 3、设置流程变量 processInstance.setProcessInstanceVariable("sn", leaveApplicationInfo.getSn()); processInstance.setProcessInstanceVariable("applicantId", leaveApplicationInfo.getApplicantId()); processInstance.setProcessInstanceVariable("leaveDays", leaveApplicationInfo.getLeaveDays()); // 4、启动流程实例 processInstance.run(); } catch (EngineException e) { e.printStackTrace(); req.setAttribute("ERR", "错误: "+e.getMessage()); } catch (KernelException e) { e.printStackTrace(); req.setAttribute("ERR", "错误: "+e.getMessage()); } return null; } }); 报的错误是 严重: Servlet.service() for servlet [submitApplicationServlet] in context with path [/sshWorkFlow] threw exception [Servlet execution threw an exception] with root cause java.lang.ClassNotFoundException: org.fireflow.engine.impl.WorkflowSession$1 at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1333) at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1167) at org.fireflow.engine.impl.WorkflowSession._createProcessInstance(WorkflowSession.java:95) at org.fireflow.engine.impl.WorkflowSession.createProcessInstance(WorkflowSession.java:227) at org.fireflow.example.leaveapplication.bizservlets.SubmitApplicationServlet$1.doInTransaction(SubmitApplicationServlet.java:68) at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:133) at org.fireflow.example.leaveapplication.bizservlets.SubmitApplicationServlet.doPost(SubmitApplicationServlet.java:55) at javax.servlet.http.HttpServlet.service(HttpServlet.java:648) at javax.servlet.http.HttpServlet.service(HttpServlet.java:729) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:292) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207) at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:85) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207) at org.fireflow.example.ou.CurrentUserFilter.doFilter(CurrentUserFilter.java:32) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:212) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:141) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79) at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:616) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:528) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1100) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:687) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1520) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1476) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Thread.java:745) 问答

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 精致技术 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览