`
sonic_yj
  • 浏览: 76659 次
  • 性别: Icon_minigender_1
  • 来自: CD
社区版块
存档分类
最新评论

JBPM 3 (图形设计器)

    博客分类:
  • JBPM
阅读更多

    JBPM 提供了基于Eclipse的一个图形化设计器,用了一个多月,感觉比刚接触的时候好一点了,不过,还是有点简陋。也许BPM就是这样设计的吧?   。用来做工作流引擎还是比商业产品差那么一点点,好在扩展性够好,挂上代码就可以用。

     那我写的一格流程对ProcessDefintion.xml 里面的常用标记做些基本说明

xml 代码
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2.   
  3. <process-definition  
  4.   xmlns="urn:jbpm.org:jpdl-3.1"  name="物资出门_往返">  
  5.    <start-state name="开始">  
  6.       <transition name="" to="审核人填写单据"></transition>         
  7.    </start-state>  
  8.    <task-node name="审核人填写单据">  
  9.       <task name="填写出门单据">  
  10.        <assignment class="mtm.workflow.FlowActorhandle"></assignment>  
  11.         <controller>  
  12.             <variable name="WF_WriteS2" mapped-name="Form"></variable>  
  13.          </controller>  
  14.       </task>  
  15.          
  16.       <transition name="提交审核" to="部门领导审批"></transition>  
  17.    </task-node>  
  18.    <task-node  name="部门领导审批">  
  19.       <task name="部门审核">  
  20.        <assignment class="mtm.workflow.FlowActorhandle"></assignment>  
  21.        <controller>  
  22.             <variable name="WF_Do_Task" access="read" mapped-name="Form"></variable>  
  23.          </controller>  
  24.       </task>  
  25.       <transition name="不同意" to="拒绝出门">  
  26.          <action name="标注拒绝" class="mtm.workflow.FlowActionhandle"></action>  
  27.       </transition>  
  28.       <transition name="同意" to="公司办审批"></transition>  
  29.       <transition name="修改单据" to="审核人填写单据"></transition>  
  30.    </task-node >  
  31.    <task-node name="公司办审批">  
  32.     <task name="公司办审核">  
  33.      <assignment class="mtm.workflow.FlowActorhandle"></assignment>  
  34.      <controller>  
  35.             <variable name="WF_Do_Task" access="read" mapped-name="Form"></variable>  
  36.          </controller>  
  37.     </task>  
  38.       <transition name="同意" to="门卫确认出门"></transition>  
  39.       <transition name="不同意" to="拒绝出门">  
  40.          <action name="标注拒绝"></action>  
  41.       </transition>  
  42.    </task-node>  
  43.    <task-node name="门卫确认出门">  
  44.       <task name="门卫出门审核">  
  45.        <assignment class="mtm.workflow.FlowActorhandle"></assignment>  
  46.        <controller>  
  47.             <variable name="WF_Do_Task" access="read" mapped-name="Form"></variable>  
  48.          </controller>  
  49.       </task>  
  50.       <transition name="同意放行" to="门卫确认进门">  
  51.          <action name="出门标注" class="mtm.workflow.FlowActionhandle"></action>  
  52.       </transition>  
  53.       <transition name="不同意放行" to="公司办审批"></transition>  
  54.    </task-node>  
  55.    <end-state name="结束"></end-state>  
  56.    <end-state name="拒绝出门"></end-state>  
  57.    <task-node name="门卫确认进门">  
  58.       <task name="登记物资进门">  
  59.        <assignment class="mtm.workflow.FlowActorhandle"></assignment>  
  60.        <controller>  
  61.             <variable name="WF_CheckIn" access="read" mapped-name="Form"></variable>  
  62.          </controller>  
  63.       </task>  
  64.       <transition name="入门确认" to="经办人确认">  
  65.          <action name="入门标注" class="mtm.workflow.FlowActionhandle"></action>  
  66.       </transition>  
  67.    </task-node>  
  68.    <task-node name="经办人确认">  
  69.       <task name="经办人确认">  
  70.        <assignment class="mtm.workflow.FlowActorhandle"></assignment>  
  71.        <controller>  
  72.             <variable name="WF_Do_Task" access="read" mapped-name="Form"></variable>  
  73.          </controller>  
  74.       </task>  
  75.       <transition name="完成处理" to="结束">  
  76.          <action name="完成确认" class="mtm.workflow.FlowActionhandle"></action>  
  77.       </transition>  
  78.    </task-node>  
  79.       
  80. </process-definition>  

 我的代码没有使用JBPM自己的用户模型(过于简单了),直接挂事件 <assignment class="mtm.workflow.FlowActorhandle"></assignment>,感觉好用得多,在委托事件里面使用Context能把所有东西都取出来,也就不必分开写成不同的了,这样反而可以做些配置保存下来。我自己封装的代码就提供了对人员处理的各种情况

 1.xml步骤直接指定流程  2.上一步数据运算结果影响下一步(指定,条件跳转 ex: 大于某个数字需要xxx处理,排除某人)3.指定步骤的处理人(发起者,上一步的关系,拥有者。。。用户委托),基本跟ibm Workflow一致了。btw,这些自己写还是有点烦

  所有回退都是用画线方式 <transition name="不同意放行" to="公司办审批"></transition> 。这样的好处是,所有的展示Form可以跟流程无关,只需要嵌入我做好的子表单就可以了,除了没有Cover和MainDoc的概念,基本改造得跟ibm workflow一样了,hehe,受ibm影响中毒太深,完全被同化了。下一步,打算把跳转条件运算结合jRules,这样会简单一点。

跟主数据交互现在是做得自己不太满意的,    采用的挂Action方法<action name="完成确认" class="mtm.workflow.FlowActionhandle"></action> 完全没有重用的可能,而且action设计得有点喜剧,挂得地方不一样,能得到的对象就不一样,挂线得Transaction,挂node得node,挂TaskNode得Tasknode,相对来说,线好用一些。

至于工作流里面最重要的,自定义流程和自定义表单关联,我开始考虑用ProcessInstance压变量,但是不直观,最后想了一个歪招搞定这个事情,<controller>
            <variable name="WF_Do_Task" access="read" mapped-name="Form"></variable>
         </controller> 用变量和映射变量来搞定。我只用名字不用值,这招还是很管用, mapped-name = "Form" 表示这个变量指定表单。 name =xxx 表示具体的表单。做到这里,我不知道是该鄙视自己把bpm当workflow用,还是该鄙视jbpm完全不考虑被当工作流用的方式。。。 反正这招挺好用,土就土点了。 工作流3大要素都齐全了,管他的,把 流转控制数据,业务数据分离了写代码傻瓜多了。swinline什么的,我觉得意义不大,被限制得有点多。就没多研究了,也许是理解不透彻吧。至于其他node,跟我估计的应该差不多,重点还是怎么挂事件了。遗憾点的就是挂事件的种类有点少,要是有editmodechange,cliam等事件就更方便了。。。。

 finish : 这个blog要能直接上载贴图就好了,索性不贴了....

 

 

 

分享到:
评论
7 楼 kencool 2008-01-03  
sonic yi 写道
自己做流程设计器本身并不复杂,就是写processdefintion.xml就可以了。jsp做我个人感觉不是一个最好的选择,b/s结构用dhtml的东西画多了效率会有些问题,如果是嵌入其他东西另当别论。你说的具体点的我不太清楚,如果你不是很熟悉jbpm的话建议你直接先抄jbpm的图形设计器,熟悉jbpm或者流程开发的话,按自己意思定义没什么问题,随便怎么改,不能支撑的部分自己写点东西来支撑就行了。改jbpm我就没想过了,看过代码,下面层次很多,基本上没发动。。。


请问,可以将jbpm的流程定义插件直接用在jBOSS中吗?
6 楼 supermy 2007-04-10  
5 楼 RomKK 2007-03-28  
引用
至于工作流里面最重要的,自定义流程和自定义表单关联,我开始考虑用ProcessInstance压变量,但是不直观,最后想了一个歪招搞定这个事情,
    用变量和映射变量来搞定。我只用名字不用值,这招还是很管用, mapped-name = "Form" 表示这个变量指定表单。name=xxx 表示具体的表单。
这里的xxx是在哪定义的呢?也就是在流程定义文件上的‘WF_WriteS2’、‘WF_Do_Task’、‘WF_CheckIn’是在哪定义的。
4 楼 sonic_yj 2007-03-05  
  自己做流程设计器本身并不复杂,就是写processdefintion.xml就可以了。jsp做我个人感觉不是一个最好的选择,b/s结构用dhtml的东西画多了效率会有些问题,如果是嵌入其他东西另当别论。你说的具体点的我不太清楚,如果你不是很熟悉jbpm的话建议你直接先抄jbpm的图形设计器,熟悉jbpm或者流程开发的话,按自己意思定义没什么问题,随便怎么改,不能支撑的部分自己写点东西来支撑就行了。改jbpm我就没想过了,看过代码,下面层次很多,基本上没发动。。。
3 楼 wf_7758520 2007-03-05  
看了你的一个回复中有提到自己来做JBPM流程的设计器
我现在有个需求,就是让用户自己定义流程(用jsp做)
这就需要一个设计器,能不能说的具体一点这要怎么实现。
2 楼 sonic_yj 2007-02-10  
jbpm有自己的用户模型,不过我感觉不适合我的需要,太简单了。其实认证并不存在,只是使用pooledactor这个东西。类里面都是我自己的用户分配方法

我对workflow用户分配方式分类如下,为了实现后面几个东西,而不用每次敲代码,就没法使用jbpm的东西了

  1.静态分配,在流程设定的时候就通过指定用户,部门,角色的方式来指定,这种最简单,jbpm自己不写代码就能实现

  2.根据运算指定,比如,上一步用户指定下一步用户,上一步条件影响下一步(比如报账,超过多少钱要xxx处理),流程相关性影响(比如要发起者确认)

  3.还有排除处理者(xxx不能处理)

  4.委托处理,超时自动处理(结合jbpm timmer可以做到)

  5.会签,阈值问题(类似投票通过)

1 楼 feedfly 2007-02-09  
你说你用的用户模型是挂事件,是指在类里做用户的认证?

相关推荐

    extjs jbpm4流程设计器

    本篇文章将深入探讨这两个技术如何结合以实现"extjs jbpm4流程设计器"的功能。 首先,ExtJS是一个强大的前端框架,它提供了丰富的组件库,如表格、表单、图表等,可以构建出高度交互和动态的Web应用。其MVC(Model-...

    jbpm流程设计器

    3. **流程实例模拟**:jbpm流程设计器支持流程实例的预览和模拟运行,用户可以在设计阶段就观察流程的执行路径,了解各个步骤间的逻辑关系。 4. **集成开发环境**:jbpm流程设计器可以与Eclipse等IDE集成,提供更...

    JBPM设计器,纯JS

    综上所述,JBPM设计器基于纯JavaScript,实现了业务流程的图形化建模,涉及前端开发、BPMN标准、图形渲染、数据序列化、API交互等多个技术领域。开发者在使用或开发此类工具时,需要具备广泛的技能和深厚的业务理解...

    JBPM Web流程设计器

    1. **图形化界面**: JBPM Web流程设计器提供了一个拖拽式的用户界面,使得流程设计变得直观易懂。用户可以通过拖动预定义的活动节点(如任务、决策、事件等)到画布上,然后通过连接线定义它们之间的关系。 2. **...

    jbpm designer (基于web的图形化流程设计工具)

    jbpm designer (基于web的图形化流程设计工具)

    jbpm4.4设计器文档

    jbpm4.4版本的设计器文档主要介绍了基于GEF(Graphical Editor Framework)实现的一个WEB版流程设计器,文档内容覆盖了设计器的设计理念、组成结构、工作流程以及定制化开发和扩展功能等多个方面。 GEF是一个图形...

    jbpm4 web设计器的初步方案

    3. **后端接口**:设计RESTful API,使得Web设计器可以与jbpm4服务器通信,进行流程图的存储、检索和执行。 4. **数据序列化**:将Web界面的图形数据转换为jbpm4能识别的格式,如XML或JSON,反之亦然。 5. **版本...

    MyEclipse6.0下Jbpm流程设计器

    Jbpm流程设计器是一个图形化的工具,允许开发者直观地创建和编辑业务流程图。它支持BPMN(Business Process Modeling Notation)标准,这是一种广泛接受的业务流程建模语言,提供了丰富的图形元素来表示流程中的各个...

    ExtJs+jbpm智能流程WEB设计器

    3. **在线流程设计器**:在线流程设计器是Web应用程序中的一个模块,允许用户通过图形界面拖放方式创建和编辑流程图。jbpm通常包含这样的设计器,而在此案例中,它被整合到基于ExtJs的前端框架中,提供了更友好的...

    jbpm web流程设计器-jbpm4_free_v1.2cut 免费版

    注意:该文件是免费版,具备的功能是:图形化流程设计器,生成流程代码。 该软件是我从网上找设计器时候找到的,如果你有兴趣购买付费版,可以上网搜索该软件,有官网的,该软件不是我的,我也不是推广,这个软件...

    jBPM-side流程设计器所有资料

    jBPM-side流程设计器支持FLEX技术,提供了直观的图形化界面,使得非技术人员也能轻松进行流程建模。 在流程建模中,我们需要了解几种基本元素: 1. **活动(Activity)**:代表流程中的一个任务或事件,如审批、...

    jbpm3中文文档.rar

    1. **流程定义**:jbpm3支持使用BPMN(Business Process Modeling Notation)标准来定义业务流程,这是一种图形化的流程建模语言,使得非技术人员也能理解流程图。 2. **流程执行**:jbpm3可以执行流程实例,处理...

    JBPM web 设计器

    1. **可视化设计**:jBPM Web Designer提供了直观的图形用户界面,使得非技术人员也能理解并设计复杂的业务流程。用户可以通过拖放操作创建和连接流程节点,如开始节点、结束节点、任务、决策和分支。 2. **跨...

    jbpm-jpd 工作流设计器插件

    jbpm-jpd是一款专为Java开发者设计的工作流设计器插件,它主要用于创建、编辑和管理jbpm(Java Business Process Management)工作流程。jbpm是一个开源的业务流程管理系统,它允许开发者构建灵活、可扩展和规则驱动...

    JBPM视频教程 JPDL 流程设计器

    流程设计器是JBPM提供的一种图形化工具,用户可以通过拖拽和配置节点来直观地创建流程图。这个工具使得非技术人员也能参与到流程设计中,提高了工作效率。在视频中,讲解者将引导你逐步操作流程设计器,创建并保存...

    JBPM-Side流程设计器架构说明

    JBPM-Side 流程设计器架构说明 一、JBPM-Side流程设计器架构说明 JBPM-Side流程设计器架构主要由三个部分组成:xml 框架、Model 模型组件和 Component 视图组件。xml 框架负责解析 xml 文件为 Model 模型组件,...

    传智播客汤阳光JBPM3源码

    6. **监听器与事件**:JBPM3支持添加监听器来监听流程中的特定事件,如任务创建、完成或流程结束,这可以用来触发额外的业务逻辑或通知。 7. **扩展与定制**:JBPM3具有良好的可扩展性,可以通过编写插件或自定义...

    JBPM流程引擎设计 工作流资料

    1. **流程建模**:JBPM支持BPMN 2.0(Business Process Model and Notation)标准,这是一种图形化的建模语言,用于描述企业的业务流程。通过BPMN,开发者可以清晰地定义各种流程元素,如任务、事件、网关等,并表达...

    jbpm的入门2--流程设计器的安装

    首先,流程设计器是jbpm提供的一种图形化工具,它使得业务流程的设计变得直观和易懂。通过拖拽和配置各个流程节点,非程序员也能理解复杂的业务逻辑。这个工具通常与Eclipse IDE集成,因此我们需要一个Eclipse开发...

Global site tag (gtag.js) - Google Analytics