- 浏览: 455951 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (233)
- 技术日志 (87)
- portal (7)
- jBPM/Activiti (34)
- Roller学习 (18)
- Java基础、网站开发 (19)
- 收藏URL (4)
- UML (3)
- linux操作 (7)
- 工作环境准备 (8)
- Mina (15)
- tomcat (8)
- Mylyn (3)
- sina网站 (2)
- 规则引擎 (3)
- 工作记录 (11)
- html(5) (9)
- 手机开发 (3)
- oracle (26)
- 常用的 (2)
- maven (8)
- hadoop (0)
- xml (7)
- 错误解决 (5)
- linux (1)
- c# (2)
- c++ (1)
- node.js (1)
- 银行业务知识 (1)
- Java调试 (0)
最新评论
-
tomcatmeng:
请问候选用户是怎样task自己的任务,看网上说先根据任务id先 ...
jBPM4.4:ForEach的使用--动态设置参与人数 -
maoweiwer:
友情提醒:如果是在MYSQL下创建数据库,则还需要更改\jbp ...
jBPM4.4: 创建数据库表 -
zybing:
ganjiang 写道有点疑惑,请lz指点,1.那个“depl ...
jBPM4.4:如何图示化显示当前的流程执行到了哪一步骤 -
zybing:
ganjiang 写道有点疑惑,请lz指点,1.那个“depl ...
jBPM4.4:如何图示化显示当前的流程执行到了哪一步骤 -
ganjiang:
有点疑惑,请lz指点,1.那个“deployId”不知是那个i ...
jBPM4.4:如何图示化显示当前的流程执行到了哪一步骤
jDPL是jBPM的突出的流程语言。jPDL的目标 是尽量精简和尽可能的开发者友好
<?xml version="1.0" encoding="UTF-8"?> <process name="Purchase order" xmlns="http://jbpm.org/4.4/jpdl"> <start> <transition to="Verify supplier" /> </start> <state name="Verify supplier"> <transition name="Supplier ok" to="Check supplier data" /> <transition name="Supplier not ok" to="Error" /> </state> <decision name="Check supplier data"> <transition name="nok" to="Error" /> <transition name="ok" to="Completed" /> </decision> <end name="Completed" /> <end name="Error" /> </process>
jPDL:
process :
以<process 作为根节点,相关属性: name、key、version
start
在一个流程里必须有一个开始节点。 一个流程必须至少拥有一个开始节点。 开始节点必须有一个向外的流向,这个流向会
在流程启动的时候执行
State
一个等待状态节点。 流程处理的流向会在外部触发器调用提供的API之前一直等待。 状态节点和其他的活动 不一样, 它没有其他任何属性或元素。
state可以有多个transition,在发出signal的时候(executionService.signalExecutionById()的时候),可以给予signalName(给出transition的名字),指定执行路线。
decision
在多个选择中选择一条路径。也可以当做是一个决定。 一个决定活动拥有很多个向外的转移。当一个流向到达一个决定活动时, 会自动执行并决定交给哪个向外的转移。
判断transition中的条件(<condition expr="" lang="">),自动选择路线。
<decision name="evaluate document"> <transition to="submit document"> <condition expr="#{content=="good"}" /> </transition> <transition to="try again"> <condition expr="#{content=="not so good"}" /> </transition> <transition to="give up" /> </decision>
如果是唯一表达式,可以把expr放在decision节点中,在transition中,只需要在name属性中直接定义为表达式的值即可
<decision name="evaluate document" expr="#{content}" > <transition name="good" to="submit document" /> <transition name="bad" to="try again" /> <transition name="ugly" to="give up" /> </decision>
唯一性管理是继承了DecisionHandler接口的java类。 决定处理器负责选择 向外转移。
<decision name="evaluate document"> <handler class="org.jbpm.examples.decision.handler.ContentEvaluation" /> <transition name="good" to="submit document" /> <transition name="bad" to="try again" /> <transition name="ugly" to="give up" /> </decision>
concurrency并发
流程的并发路径可以使用 fork
和
join
活动来建模。
fork出来,join结束
end结束
结束流向
默认情况下,结束活动会终结已完成流程处理实例。 因此在流程处理实例中, 仍然在活动的多个并发(concurrent)流向(concurrent) 也会结束
一个流程处理可以有多个end events
流向(execution)可以以不同的状态结束。可以用其他的方式列出流程处理实例的结果。 可以用end event的状态属性或者end-cancel 和end-error表示。
<end name="ok" state="completed"/> <end-cancel name="bad request"/> <end-error name="internal server error"/>
task---重点
在任务组件中,为一个人创建一个任务。
属性:
任务分配者,谁来执行这个任务
assignee:
任务候选人
candidate-groups:组的id列表
candidate-users: 人的id列表
如果是任务分配给组,查找个人任务的时候是找不到的(taskService.findPersonalTasks(用户)),通过按照组的方式查找可以找到(taskService.findGroupTasks(用户))
在处理之前,候选人必须接受一个任务。 这会表现为两个候选人在同一个任务上开始工作。 分组任务列表中,用户接口必须只接受对这些任务的接受”操作。
taskService.takeTask(task.getDbid(), "johndoe");
当一个用户接受了一个任务,这个任务的分配人就会变成当前用户。 任务会从所有候选人的分组任务列表中消失, 它会出现在用户的已分配列表中。
用户只允许执行在他们的个人任务列表上的工作。 这应该由用户接口控制。
简单的,candidate-users
属性
可以用来处理用逗号分隔的一系列用户id。
candidate-users
属性可以和其他分配选项结合使用。
任务
分配处理器
一个AssignmentHandler
可以通过编程方式来计算
一个任务的分配人和候选人。
Assignable
是任务
和泳道
的通用接口。
所以任务分配处理器可以使用在任务,
也可以用在泳道中
<task name="review" g="96,16,127,52"> <assignment-handler class="org.jbpm.examples.task.assignmenthandler.AssignTask"> <field name="assignee"> <string value="johndoe" /> </field> </assignment-handler> <transition to="wait" /> </task>
请注意,默认AssignmentHandler实现可以使用使用流程变量 任何其他Java API可以访问资源,像你的应用数据库来计算 分配人和候选人用户和组
当达到该任务,就会启动assignment-handler,进行执行人的分配;
任务
泳道
一个流程中的多任务应该被分配给同一个用户或候选人。 一个流程中的多任务可以分配给一个单独的泳道。流程实例将记得候选人和用户,在泳道中执行的第一个任务。 任务序列在同一个泳道中将被分配给这些用户和候选人。
一个泳道也可以当做一个流程规则。 在一些情况下, 这可能与身份组件中的权限角色相同。 但是实际上它们并不是同一个东西。
<!-- 定义了一个泳道 --> <swimlane name="sales representative" candidate-groups="sales-dept" /> <!-- 在一个task中,使用某个预定义好的泳道 --> <task name="enter order data" swimlane="sales representative"> <transition to="calculate quote"/> </task>
在任务中支持e-mail
可以为分配人提供一个提醒,
当一个任务添加到他们的列表时,以及在特定的时间间隔进行提醒。
每个email信息都是根据一个模板生成出来的。模板可以在内部指定,
或者在配置文件中的
process-engine-context
部分指定。
sub-process子流程
custom
自动活动
java
script脚本
hql
sql
mail
Common activity contents通用活动内容
Events事件
异步调用
用户代码
发表评论
-
jBPM4.4+SpringSecurity用户合并到自己体系中来
2011-12-30 10:53 3518jbPM4.4中的用户: 见:http://zybin ... -
从JBPM4以后的走向
2011-12-23 09:47 2087从JBPM4以后, 原来jBPM的设计师Tom Baeye ... -
jBPM4.4:查找任务完成过程
2011-08-29 11:50 2683在jBPM中,历史的任务,通过historyService可以 ... -
【jBPM】jbpm怎么获取下一个节点的任务定义,注意不是任务实例。
2011-08-27 06:19 3439http://jbpm.group.iteye.com/gro ... -
jBPM4:在Listen中使用Spring的Bean
2010-12-07 10:23 1885jBPM和Spring结合,在spring中配置了大量的Bea ... -
jBPM4:sub-process
2010-11-16 10:03 1841看了一下sub-process, ... -
jBPM4.4:配置(包括和Spring的整合,和Hibernate配置)
2010-11-08 14:50 5270jBPM4.4,获取ProcessEngine是通过Confi ... -
jBPM4.4:如何图示化显示当前的流程执行到了哪一步骤
2010-10-29 11:17 5866流程执行时,有时候需要看一下当前的工作卡在哪一步了,对于熟悉流 ... -
jBPM4:接在现有的系统上,需要更换用户体系
2010-10-08 17:59 2375在现有的应用上,接入jBPM,要修改的就是jBPM的用户体系。 ... -
jBPM4.4:ForEach的使用--动态设置参与人数
2010-09-13 14:34 7709流程确定的情况下,有时候完成一个步骤人数不确定,在任务发布的时 ... -
jBPM4.4:动态创建连接
2010-09-02 18:23 2375参考了这篇文档的思路: http://man1900.ite ... -
jBPM4.4:完成任务的几种方法
2010-09-02 13:46 1762开始了一个Process,需要完成任务,完成任务有以下几种方法 ... -
jBPM4.4:ProcessFactory和ProcessDefinitionBuilder
2010-08-31 15:44 1585在文档中,有例子可以 ... -
jBPM4.4:在看开发指南之前总结一下
2010-08-31 10:08 2143jBPM4.4: 源头是Config ... -
jBPM4.4 -- 深入了解数据库结构、关系
2010-08-27 17:13 2893重新深入了解jBPM4.4的数据库表、以及之间的关系: ... -
jBPM4.4: 动态创建执行路径 -- 类似与会签等
2010-08-25 16:23 6487工作场景: 有一项任务需要完成,不同的部门领导根据实际情况,有 ... -
jBPM4.4:ProcessDefinition/ProcessInstance/Execution/Task关系和区别
2010-08-24 16:06 9945ProcessDefinition : 这 ... -
jBPM4.4:分配任务的几种方式
2010-08-24 11:19 3361在jBPM中,分配任务可以有几种方式: 按照分配对象,可以分 ... -
jBPM4.4:获取现有的流程
2010-08-19 16:50 1532通过repositoryService, 获取一个Proces ... -
jBPM4.4:创建一个流程的实例
2010-08-19 13:42 3036发布了流程后,创建一个实例,进行执行。 ProcessEng ...
相关推荐
此外,它还支持JPDL(jBPM Process Definition Language),这是一种专门为jBPM设计的语言,允许更细粒度的控制和定制。 2. **集成能力**:jBPM 4.4可以无缝集成到各种Java EE环境,如JBoss AS、WildFly和GlassFish...
### jBPM4.4 API 详解:工作流自动化的核心技术 #### 一、工作流基础知识 工作流,作为业务过程的部分或整体自动化,旨在通过计算机应用环境实现文档、信息或任务在多个参与者间的自动传递,以达到预期的业务目标...
**Jbpm4.4整合Spring Hibernate4详解** Jbpm4.4是一个流程管理系统,它结合了业务流程管理(BPM)和工作流服务,提供了强大的流程定义、执行和监控能力。在这个版本中,Jbpm与Spring框架和Hibernate ORM工具进行了...
父项目中,根据Maven的规范,配置了相关依赖包的引用,包括:Jbpm4.4的引用包引用、Junit4.9的测试包引用,hibernate的引用包,以及应用服务器Jboss的Client引用等。 接口中,提供了部署流程、创建实例、获得当前...
JBPM4.4是JBoss Business Process Management (BPM)平台的一个版本,它是一个开源的企业级BPM解决方案,用于设计、执行和管理业务流程。在这个完整的审批流程工程中,我们看到它采用Maven进行项目构建和依赖管理,...
【jbpm4.4_eclipse插件GPD的安装】主要涉及的是在Eclipse环境中安装和配置jbpm4.4的图形化流程设计器(Graphical Process Designer,简称GPD)的过程。以下是详细的步骤: 1. **获取Eclipse**:首先,你需要确保...
【JBPM4.4+Hibernate3.5.4+Spring3.0.4+Struts2.1.8整合】的整个过程涉及到多个关键组件的集成,这些组件都是Java企业级开发中的重要部分。首先,JBPM(Business Process Management)是一个开源的工作流引擎,它...
jBPM 4.4用户手册 翻译官方文档 JBoss jBPM Teams 4.4 译者: Lingo 首页: http://www.family168.com/ 论坛: http://old.family168.com/bbs EMAIL: lingosurf168@gmail.com 2009年11月1日 1. 导言 1.1. 许可...
**JBPM4.4入门开发实例** JBPM(Java Business Process Management)是一个开源的工作流程管理系统,专注于业务流程的建模、执行和监控。版本4.4是JBPM的一个早期版本,尽管现在已经有更新的版本,但这个入门实例...
【jbpm4.4 完整例子】是一个基于servlet和jsp实现的业务流程管理(BPM)系统示例,它展示了jbpm4.4框架的核心功能和应用场景。jbpm是一个开源的工作流和业务流程管理系统,它允许开发者设计、执行、管理和监控业务...
JBPM4.4 是一款强大的工作流管理系统,用于构建和管理业务流程。在这个系统中,有几个核心的对象和服务,它们构成了JBPM的核心功能。 1. **ProcessEngine对象**:ProcessEngine 是整个jbpm的核心,它是从 ...
### jBPM 4.4 用户手册:深入了解工作流引擎 #### 一、jBPM 4.4 概览 jBPM 4.4 是一款基于Java的开源工作流管理引擎,专为需要高度可扩展性和灵活性的业务流程设计。作为JBoss项目的一部分,jBPM 4.4在LGPL(GNU ...
1. **流程定义语言(JPDL)**:jbpm4.4使用基于XML的JPDL进行流程定义,开发者可以通过JPDL定义工作流的各个节点和流转规则。 2. **流程执行引擎**:jbpm4.4的核心组件,负责执行流程实例,包括启动流程、执行任务...
【jbpm4.4工作流框架笔记】 工作流(Workflow)是现代企业信息化的重要组成部分,其核心在于将复杂的业务过程自动化,确保多个参与者之间按照预设规则高效协作,达成预定的业务目标。工作流管理系统(WfMS)是实现...
jBPM 4.4 用户指南 jBPM 4.4 是一个功能强大且灵活的工作流引擎,可以运行在独立的服务器上或者嵌入任何 Java 应用中。该用户指南提供了从安装、部署、使用、开发到原理和机制的全面的工作流教程。 jBPM 概述 ...