JBPM 提供了基于Eclipse的一个图形化设计器,用了一个多月,感觉比刚接触的时候好一点了,不过,还是有点简陋。也许BPM就是这样设计的吧? 。用来做工作流引擎还是比商业产品差那么一点点,好在扩展性够好,挂上代码就可以用。
那我写的一格流程对ProcessDefintion.xml 里面的常用标记做些基本说明
xml 代码
- <?xml version="1.0" encoding="UTF-8"?>
-
- <process-definition
- xmlns="urn:jbpm.org:jpdl-3.1" name="物资出门_往返">
- <start-state name="开始">
- <transition name="" to="审核人填写单据"></transition>
- </start-state>
- <task-node name="审核人填写单据">
- <task name="填写出门单据">
- <assignment class="mtm.workflow.FlowActorhandle"></assignment>
- <controller>
- <variable name="WF_WriteS2" mapped-name="Form"></variable>
- </controller>
- </task>
-
- <transition name="提交审核" to="部门领导审批"></transition>
- </task-node>
- <task-node name="部门领导审批">
- <task name="部门审核">
- <assignment class="mtm.workflow.FlowActorhandle"></assignment>
- <controller>
- <variable name="WF_Do_Task" access="read" mapped-name="Form"></variable>
- </controller>
- </task>
- <transition name="不同意" to="拒绝出门">
- <action name="标注拒绝" class="mtm.workflow.FlowActionhandle"></action>
- </transition>
- <transition name="同意" to="公司办审批"></transition>
- <transition name="修改单据" to="审核人填写单据"></transition>
- </task-node >
- <task-node name="公司办审批">
- <task name="公司办审核">
- <assignment class="mtm.workflow.FlowActorhandle"></assignment>
- <controller>
- <variable name="WF_Do_Task" access="read" mapped-name="Form"></variable>
- </controller>
- </task>
- <transition name="同意" to="门卫确认出门"></transition>
- <transition name="不同意" to="拒绝出门">
- <action name="标注拒绝"></action>
- </transition>
- </task-node>
- <task-node name="门卫确认出门">
- <task name="门卫出门审核">
- <assignment class="mtm.workflow.FlowActorhandle"></assignment>
- <controller>
- <variable name="WF_Do_Task" access="read" mapped-name="Form"></variable>
- </controller>
- </task>
- <transition name="同意放行" to="门卫确认进门">
- <action name="出门标注" class="mtm.workflow.FlowActionhandle"></action>
- </transition>
- <transition name="不同意放行" to="公司办审批"></transition>
- </task-node>
- <end-state name="结束"></end-state>
- <end-state name="拒绝出门"></end-state>
- <task-node name="门卫确认进门">
- <task name="登记物资进门">
- <assignment class="mtm.workflow.FlowActorhandle"></assignment>
- <controller>
- <variable name="WF_CheckIn" access="read" mapped-name="Form"></variable>
- </controller>
- </task>
- <transition name="入门确认" to="经办人确认">
- <action name="入门标注" class="mtm.workflow.FlowActionhandle"></action>
- </transition>
- </task-node>
- <task-node name="经办人确认">
- <task name="经办人确认">
- <assignment class="mtm.workflow.FlowActorhandle"></assignment>
- <controller>
- <variable name="WF_Do_Task" access="read" mapped-name="Form"></variable>
- </controller>
- </task>
- <transition name="完成处理" to="结束">
- <action name="完成确认" class="mtm.workflow.FlowActionhandle"></action>
- </transition>
- </task-node>
-
- </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要能直接上载贴图就好了,索性不贴了....
分享到:
相关推荐
本篇文章将深入探讨这两个技术如何结合以实现"extjs jbpm4流程设计器"的功能。 首先,ExtJS是一个强大的前端框架,它提供了丰富的组件库,如表格、表单、图表等,可以构建出高度交互和动态的Web应用。其MVC(Model-...
3. **流程实例模拟**:jbpm流程设计器支持流程实例的预览和模拟运行,用户可以在设计阶段就观察流程的执行路径,了解各个步骤间的逻辑关系。 4. **集成开发环境**:jbpm流程设计器可以与Eclipse等IDE集成,提供更...
综上所述,JBPM设计器基于纯JavaScript,实现了业务流程的图形化建模,涉及前端开发、BPMN标准、图形渲染、数据序列化、API交互等多个技术领域。开发者在使用或开发此类工具时,需要具备广泛的技能和深厚的业务理解...
1. **图形化界面**: JBPM Web流程设计器提供了一个拖拽式的用户界面,使得流程设计变得直观易懂。用户可以通过拖动预定义的活动节点(如任务、决策、事件等)到画布上,然后通过连接线定义它们之间的关系。 2. **...
jbpm designer (基于web的图形化流程设计工具)
jbpm4.4版本的设计器文档主要介绍了基于GEF(Graphical Editor Framework)实现的一个WEB版流程设计器,文档内容覆盖了设计器的设计理念、组成结构、工作流程以及定制化开发和扩展功能等多个方面。 GEF是一个图形...
这些JavaScript文件的结合,构建了一个基本的jbpm4设计器的前端应用,实现了工作流的图形化设计、运行和管理。通过Application化,开发者将jbpm4的设计器集成到一个更全面的业务环境中,提供了更友好的用户体验,...
3. **后端接口**:设计RESTful API,使得Web设计器可以与jbpm4服务器通信,进行流程图的存储、检索和执行。 4. **数据序列化**:将Web界面的图形数据转换为jbpm4能识别的格式,如XML或JSON,反之亦然。 5. **版本...
Jbpm流程设计器是一个图形化的工具,允许开发者直观地创建和编辑业务流程图。它支持BPMN(Business Process Modeling Notation)标准,这是一种广泛接受的业务流程建模语言,提供了丰富的图形元素来表示流程中的各个...
3. **在线流程设计器**:在线流程设计器是Web应用程序中的一个模块,允许用户通过图形界面拖放方式创建和编辑流程图。jbpm通常包含这样的设计器,而在此案例中,它被整合到基于ExtJs的前端框架中,提供了更友好的...
注意:该文件是免费版,具备的功能是:图形化流程设计器,生成流程代码。 该软件是我从网上找设计器时候找到的,如果你有兴趣购买付费版,可以上网搜索该软件,有官网的,该软件不是我的,我也不是推广,这个软件...
jBPM-side流程设计器支持FLEX技术,提供了直观的图形化界面,使得非技术人员也能轻松进行流程建模。 在流程建模中,我们需要了解几种基本元素: 1. **活动(Activity)**:代表流程中的一个任务或事件,如审批、...
1. **流程定义**:jbpm3支持使用BPMN(Business Process Modeling Notation)标准来定义业务流程,这是一种图形化的流程建模语言,使得非技术人员也能理解流程图。 2. **流程执行**:jbpm3可以执行流程实例,处理...
1. **可视化设计**:jBPM Web Designer提供了直观的图形用户界面,使得非技术人员也能理解并设计复杂的业务流程。用户可以通过拖放操作创建和连接流程节点,如开始节点、结束节点、任务、决策和分支。 2. **跨...
jbpm-jpd是一款专为Java开发者设计的工作流设计器插件,它主要用于创建、编辑和管理jbpm(Java Business Process Management)工作流程。jbpm是一个开源的业务流程管理系统,它允许开发者构建灵活、可扩展和规则驱动...
流程设计器是JBPM提供的一种图形化工具,用户可以通过拖拽和配置节点来直观地创建流程图。这个工具使得非技术人员也能参与到流程设计中,提高了工作效率。在视频中,讲解者将引导你逐步操作流程设计器,创建并保存...
JBPM-Side 流程设计器架构说明 一、JBPM-Side流程设计器架构说明 JBPM-Side流程设计器架构主要由三个部分组成:xml 框架、Model 模型组件和 Component 视图组件。xml 框架负责解析 xml 文件为 Model 模型组件,...
6. **监听器与事件**:JBPM3支持添加监听器来监听流程中的特定事件,如任务创建、完成或流程结束,这可以用来触发额外的业务逻辑或通知。 7. **扩展与定制**:JBPM3具有良好的可扩展性,可以通过编写插件或自定义...
1. **流程建模**:JBPM支持BPMN 2.0(Business Process Model and Notation)标准,这是一种图形化的建模语言,用于描述企业的业务流程。通过BPMN,开发者可以清晰地定义各种流程元素,如任务、事件、网关等,并表达...