`
马背上的大彬
  • 浏览: 33548 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

基于标签方式的工作流启动及任务执行开发说明

阅读更多
基于现在的系统的整合需求,本系统提供基于标签的工作流整合方式,工作流的启动及执行下一步时,均需要通过可以通过标识来处理完成。这使得基于JSP方式的流程整合变得很简单. 


  • 自定义工作流启动
    系统提供启动参数,只需要提交至/flow/startProcessActivity.do,提交的参数包括以下:(可以参考ProcessRunStart.js的)

  •    defId: 必需,流程定义Id,即pro_definition表里的主键
  •     startFlow: 必需,值为true,则表示启动流程   必填
  •     destName:目标节点,当开始节点有两个以上的分支时,可以指定该值,以决定流程启动后,跳转至的目标节点,若没有指定,则默认会跳至第一个节点。
  •     flowAssignId:目标节点的执行人员,其格式如:格式为:节点1:节点2|节点1执行人IDs:节点2执行IDs,其中节点IDs值格式如1,2,3,若没有指定,则以后台的节点指定的执行人员。
  •     useTemplate:默认为false,表示用的是后台的在线表单保存值,若用模板表单,则设置该值为true。
  •     sendMail: 默认为false,true则表示发送邮件通知相关的人员
  •     sendMsg: 默认为false,true则表示发送短信通知待办人员


若调用标签,可以简化启动流程的使用方式。
start标签调用示例: 

Java代码  [url=][/url]

  • <%@ taglib prefix="flow" tagdir="/WEB-INF/tags/flow"%>  
  • <flow:start curUserId="1" defId="1">  
  •         <table cellpadding="0" cellspacing="1" border="1" >  
  •             <tr>  
  •                 <td>我的业务表单</td>  
  •             </tr>  
  •             <tr>  
  •                 <td>  
  •                     xx:<input type="text" name="xxx"/>  
  •                     <input type="hidden" name="afterHandler" value="axxxService.aaMethod"/>  
  •                     <input type="hidden" name="preHandler" value="axxxService.aaMethod"/>  
  •                 </td>  
  •             </tr>  
  •         </table>  
  •     </flow:start>  



    start标签只带两个参数, curUserId表示为当前启动的流程的Id,defId为流程定义Id,中间标着色的部分为自己的业务表单,可以在自己的业务表单中加上preHandler及afterHandler参数值,如:<input type=”hidden” name=”afterHandler” value=”xxService.xxMethod”/>

在工作流启动的时候,一般只需要指定afterHandler方法对应的参数,其值格式为xxxxService.xxMethod,若指定了该值,则表示在工作流启动后,会从Spring容器中查找xxService的Bean,并且调用其xxMethod的方法,而xxMethod的方法格式如下所示:

Integer xxMethod(FlowFlowRunInfo flowRunInfo);
FlowFlowRunInfo里面会携带流程的相关信息,如更改流程中的待办事项的名称,则可以在在该方法中调用:
ProcessRun processRun=flowRunInfo.getProcessRun();
processRun.setSubject(“xxx审批流程”);
processRunService.save(processRun);

在这里加上自己的业务变量加至流程中,可以像以下调用:
Map map=new HashMap();
map.put(“pkId”,xx.getId());
executionService.setVariables(processRun.getPiId(),map);

或像以下方式中调用:
flowRunInfo.getFlowVars().put(“pkId”,xx.getId());
xx.getId()表示取得xx实体变量中的id键值,可以在后续的流程中获取。 

若要在该方法,需要获取表单中的业务方法,可以通过flowRunInfo.getRequest()获取HttpServletRequest对象。若需要获取在业务表单中自动封装的实体,可以在业务表单中用以下的方式命名,如
<input type=”text” name=”salesOrder.orderNo” value=”xxx”/>
在xxMethod方法可以把参数名以salesOrder开头的参数自动组装至salesOrder对象,则需要像以下方式调用:

Java代码  [url=][/url]

  • SalesOrder salesOrder=new SalesOrder();  
  •         try{  
  •             BeanUtil.populateEntity(flowRunInfo.getRequest(), salesOrder, "salesOrder");  
  •         }catch(Exception ex){  
  •             logger.error(ex.getMessage());  
  •         }  



  • 自定义工作流执行下一步
    流程执行下一步时,只需要把流程表单中提交至/flow/nextProcess.do,并且携带以下参数则可。

  •     taskId:必需,jbpm中的任务Id
  •     destName:目标节点,当开始节点有两个以上的分支时,可以指定该值,以决定流程启动后,跳转至的目标节点,若没有指定,则默认会跳至第一个节点。
  •     flowAssignId:目标节点的执行人员,其格式如:格式为:节点1:节点2|节点1执行人IDs:节点2执行IDs,其中节点IDs值格式如1,2,3,若没有指定,则以后台的节点指定的执行人员。
  •     useTemplate:默认为false,表示用的是后台的在线表单保存值,若用模板表单,则设置该值为true。
  •     signVoteType:会签投票类型,当前节点为会签时,表示需要进行参与会签,当前用户投的会签的决定(1=同意,2=拒绝,3=弃权)
  •     sendMail: 默认为false,true则表示发送邮件通知相关的人员
  •     sendMsg:默认为false,true则表示发送短信通知待办人员


标签的使用以下所示: 
       

Java代码  [url=][/url]

  • <flow:next curUserId="${params.curUserId}" taskId="${params.taskId}">  
  •         <table>  
  •             <tr>  
  •                 <td>我的业务表单</td>  
  •             </tr>  
  •             <tr>  
  •                 <td>  
  •                     taskName:<input type="text" name="xxx"/>  
  •                 </td>  
  •             </tr>  
  •         </table>  
  •     </flow:next>  

    
在该标签内,也可以像start标签一样,接收preHandler参数及afterHandler方法,以方便加上在业务表单的处理方法。 

 

3.在后台指定流程表单路径
 
进入某个流程后台设置,如下:


<ignore_js_op style="word-wrap: break-word;">


把“使用表单模板”,同时在每个节点,指定模板类型为JSP模板,并且在url指定自己的业务执行表单路径。
分享到:
评论
1 楼 马背上的大彬 2014-09-03  
效果地址:BPMX在线试用地址:
电信:http://office.jee-soft.cn:10080/bpm3/login.jsp
网通:http://oa.jee-soft.cn:10080/bpm3/login.jsp
账号:admin
密码:1

相关推荐

    jBPM4工作流应用开发指南.pdf

    - **工作流应用开发:** 工作流应用开发是指通过建立工作流模型,使用计算机程序来自动化一系列业务流程。这通常涉及定义任务、活动、决策点、角色和责任等元素,以及它们之间的交互顺序。 - **jBPM4:** jBPM4 是...

    基于java web工作流管理系统源码.rar

    在代码中,每个决定通常对应一个业务逻辑,通过监听工作流事件并执行相应的处理方法实现。例如,当一个审批节点完成时,系统可能需要发送通知,更新任务状态,并根据审批结果确定流程是否结束或转至下一个节点。 6....

    工作流Activiti的学习总结(八)Activiti自动执行的应用

    Activiti是基于Java的轻量级工作流引擎,它实现了Business Process Model and Notation (BPMN) 2.0标准,允许开发者以图形化方式设计和执行流程。它的核心功能包括流程定义、流程实例的启动、任务处理、信号与事件...

    jBPM4工作流应用开发指南完整版带书签

    但是,基于标题、描述、标签以及给出的指令,我们可以推测该文档的核心内容是关于jBPM4工作流应用开发的指南。接下来,我将详细展开关于jBPM4和工作流应用开发的知识点。 ### jBPM4概述 jBPM(Java Business ...

    毕业答辩-asp.net基于工作流引擎的系统框架设计开发(源代码论文).rar

    【标题】:“毕业答辩-asp.net基于工作流引擎的系统框架设计开发(源代码论文).rar”是一个关于使用ASP.NET技术构建基于工作流引擎的系统框架的毕业设计项目,其中包含了源代码和相关的论文文档。这个项目展示了如何...

    基于ASP.net的工作流系统源码.zip

    【标题】: "基于ASP.NET的工作流系统源码" 是一个专门为学习和研究目的提供的软件开发项目,它展示了如何在ASP.NET平台上构建一个工作流管理系统。这个系统可能包含了设计、实现、部署工作流程的全部过程,是理解Web...

    基于Java的实例源码-开源工作流系统 JWFD.zip

    8. **用户界面**:JWFD可能包含了一个Web界面,让用户可以查看和操作工作流任务,界面可能基于Spring MVC或类似的Web框架开发。 9. **日志和监控**:为了追踪和调试,JWFD可能集成了日志系统(如Log4j或Logback)和...

    activiti工作流学习总结

    工作流是一系列相互关联的任务,这些任务按照一定的规则和顺序执行,以实现某个业务过程。Activiti是一款开源的工作流引擎,它基于Java平台,广泛应用于企业的业务流程自动化中,提供强大的流程定义、执行、监控和...

    Activiti工作流源码简单入门案例

    Activiti是一款开源的工作流引擎,它基于模型驱动的架构,为业务流程自动化提供了一套强大的解决方案。本案例将带你入门Activiti,理解其基本概念和操作流程。 首先,我们需要了解什么是工作流。工作流(Workflow)...

    tomcat中的工作流完整demo(JBPM引擎)

    这三个关键词共同构成了一个基于Java的工作流应用开发和部署的场景。 【压缩包子文件的文件名称列表】: flowdemo "flowdemo"很可能包含了整个工作流应用的源代码、配置文件、以及可能的资源文件。用户可能需要解压...

    activiti工作流

    Activiti工作流是一款开源的工作流程管理系统,主要用于企业的业务流程自动化。它是基于模型驱动的应用开发(MDA)理念,采用Java语言编写,与Spring框架高度集成,适用于构建企业级的业务流程应用。Activiti的设计...

    Activiti6.0工作流引擎springboot项目代码

    工作流是一种描述组织中任务如何流转、谁来处理这些任务以及如何处理的模型。在信息技术中,工作流引擎用于自动化这种过程,确保流程的一致性和效率。Activiti作为一个工作流引擎,可以处理从简单审批流程到复杂的...

    WF本质论,源码,工作流

    本文将基于标题"WF本质论,源码,工作流",描述"工作流本质流,是深入学习工作流的一大力作,欢迎朋友下载并学习"以及标签"WWF WORKFLOW .NET C# 工作流"来详细阐述工作流的相关知识点。 首先,让我们从工作流的...

    JBPM工作流演示系统使用说明.doc

    【JBPM工作流演示系统使用说明】 JBPM(Java Business Process Management)是一个开源的工作流管理系统,用于设计、执行和管理业务流程。这个文档是关于一个基于JBPM的演示系统,主要用于展示工作流的使用,特别是...

    jbpm2.rar_java 工作流_jbpm_工作流

    Java工作流(Workflow)是软件开发中的一个重要概念,它用于自动化和管理业务流程。JBPM(JBoss Business Process Management)是Java领域一个广泛使用的开源工作流管理系统,它提供了全面的业务流程建模、执行和...

    基于Java的实例源码-业务流程管理(BPM)和工作流系统 Activiti.zip

    【标题】基于Java的实例源码-业务流程管理(BPM)和工作流系统 Activiti.zip 这个压缩包文件提供了一套基于Java的业务流程管理(Business Process Management, BPM)和工作流系统的实例源码,主要关注的是Activiti...

    Java web XiorkFlow 工作流.rar

    标签“ssh工作流”表明这个压缩包可能包含了一个基于SSH的示例项目,用于演示如何在实际应用中集成XiorkFlow。文件名称“XiorkFlow”可能是项目的核心模块或配置文件,其中可能包含了流程定义、服务配置以及与Spring...

    JBPM工作流演示系统使用说明

    JBPM工作流演示系统,作为一个专注于JBPM技术的初级开发实例,旨在帮助新手快速理解JBPM的工作原理及其在实际项目中的应用方式。该系统通过一个具体的场景——请假流程管理,来展示工作流引擎在企业级应用中的集成与...

    ACTIVITI工作流绘图

    ACTIVITI工作流绘图是一个关于流程自动化和工作流管理系统的话题,主要涉及的是Activiti这一开源工作流引擎。在本文中,我们将深入探讨Activiti的核心功能、如何使用它进行工作流设计,以及如何通过图形化工具进行...

Global site tag (gtag.js) - Google Analytics