流程确定的情况下,有时候完成一个步骤人数不确定,在任务发布的时候有领导确定参与完成的人员。
为了完成这样的情况,可以到了这一步,通过配置动态的生成一些subTask,通过subTask给每个人进行分派工作。
其实还可以通过jBPM4.4中的foreach的方式进行完成(注意:这个功能还在孵化器中)。
如:完成一个审核工作,有些工作需要2个人完成,有些工作需要3个人完成,在开启流程的时候,由生成流程的人员进行指定对应的工作人员。
拿jBPM4.4开发指南中的例子来解释:
<
process
name
=
"ForEach"
xmlns
=
"http://jbpm.org/4.4/jpdl"
>
<
start
g
=
"28,61,48,48"
name
=
"start1"
>
<
transition
to
=
"foreach1"
/>
</
start
>
<
foreach
var
=
"department"
in
=
"#{departments}"
g
=
"111,60,48,48"
name
=
"foreach1"
>
<
transition
to
=
"Collect reports"
/>
</
foreach
>
<
task
candidate-groups
=
"#{department}"
g
=
"201,58,92,52"
name
=
"Collect reports"
>
<
transition
to
=
"join1"
/>
</
task
>
<
join
g
=
"343,59,48,48"
multiplicity
=
"#{quorum}"
name
=
"join1"
>
<
transition
to
=
"end1"
/>
</
join
>
<
end
g
=
"433,60,48,48"
name
=
"end1"
/>
</
process
>
1. 启动流程后,到达foreach节点:
<
foreach
var
=
"department"
in
=
"#{departments}"
g
=
"111,60,48,48"
name
=
"foreach1"
>
<
transition
to
=
"Collect reports"
/>
</
foreach
>
参数:
in:表示从外面传入的参数,foreach会读取这个参数,这个参数可以是string数组,也可以是通过逗号分隔的字符串
var:这个变量是foreach将in中的内容按照规则进行拆分,拆分的结果放在var定义的变量中,传递给下一步(每一步接收一个值)
进入到foreach,解析完这些参数,会根据join中的multiplicity参数的值,生成task(multiplicity定义为几,就生成几个Executiuon,几个task),这些Task的assignee都是空的
2. 进入到task
<
task
candidate-groups
=
"#{department}"
g
=
"201,58,92,52"
name
=
"Collect reports"
>
<
transition
to
=
"join1"
/>
</
task
>
<task candidate-groups="#{department}" g="201,58,92,52"
name="Collect reports"> <transition to="join1"/> </task>
进入到task,其实现在有多个task,是根据join中的multiplicity来确定的。
这些task任务安排的人员在candidate-groups(或者是candidate-users等)中定义。这个例子#{department},就是在foreach节点中,定义的var="department"中的变量名字;
这些任务不是直接分派到用户的,而是需要用户自己进行take的
(通过TaskService.createTaskQuery().candidate(userId).list 可以获得有哪些任务自己是候选者
或者通过TaskService.findGroupTasks(userId)获取有哪些任务是自己加入的组需要完成的,
或者在流程xml文件中,直接用assignee,分配给任务完成的人员
)。
3. foreach自动生成的这些Task都完成了,则流程进入到下一步;
如果有部分人员完成,部分人员没有完成,还是可以查到foreach自动生成的所有Execution(通过processInstance.getExecutions()),不过根据任务完成的情况有不同的状态:
如果任务已经完成,则在Task表中已经删除,得到的execution状态是:inactive-join
没有完成的任务,在task中依旧存在,得到的execution状态是 active-concurrent
来源:http://hi.baidu.com/%D2%BB%D6%AA%CA%B6%B7%D6%D7%D3/blog/item/fa5cb3b685178def30add1d4.html
相关推荐
4. **审计与日志**:jbpm-audit-7.3.0.Final.jar和jbpm-human-task-audit-7.3.0.Final.jar用于记录流程实例和任务活动的审计信息,这对于流程跟踪和审计至关重要。 5. **ejb服务与定时器**:jbpm-services-ejb-...
jbpm-jpdl-suite-3.2GA -(5)分开压缩(共5个文件)jbpm下载 jbpm-jpdl-suite-3.2GA -(5)分开压缩(共5个文件)jbpm下载
4. **jbpm-jpdl-suite-3.2.3部署**: - 在MySQL中执行修改后的jbpm.jpdl.mysql.sql脚本,初始化jbpm所需的表结构。 - 配置jbpm的数据库连接信息,通常是在jbpm的配置文件中(如jbpm-config.xml或相关的JNDI配置)...
4. **jbpm-console.war**:这是一个基于JSF的Web控制台,用于监控jPDL平台的运行情况,包括数据库监控、流程定义管理和流程实例执行。此外,它还包含一个入门演示,帮助新手快速熟悉jPDL。 **jbpm-jpdl-suite-3.2.3...
jbpm-starters-kit-3.1.2插件,jbpm-starters-kit-3.1.2插件,jbpm-starters-kit-3.1.2插件,jbpm-starters-kit-3.1.2插件,jbpm-starters-kit-3.1.2插件,jbpm-starters-kit-3.1.2插件,共两卷
jbpm-jpdl-suite-3.2.3.zipjbpm-jpdl-suite-3.2.3.zipjbpm-jpdl-suite-3.2.3.zipjbpm-jpdl-suite-3.2.3.zipjbpm-jpdl-suite-3.2.3.zipjbpm-jpdl-suite-3.2.3.zipjbpm-jpdl-suite-3.2.3.zipjbpm-jpdl-suite-3.2.3....
"jbpm-jpdl-designer-nodeps-3.1.4" 是一个针对Jbpm工作流管理系统中的JPDL设计工具的无依赖版本,主要用于创建和编辑JPDL(Jbpm Process Definition Language)文件。该资源包含了该工具的详细文档、许可证协议以及...
jbpm-jpdl-designer-site-3.1.7.zip jbpm-jpdl-designer-site-3.1.7.zip jbpm-jpdl-designer-site-3.1.7.zip
jbpm-jpdl-suite-3.2.GA.zip
jbpm-jpdl-suite-3.2.GA.zip
jbpm-jpdl-suite-3.2.GA.zip
jbpm-starters-kit-3.1.2.zip官方下载地址 版本里包括一个JBPM流程设计器的Eclipse插件,和一个用JBOSS作为服务器的示例流程等相关文件。解压jbpm-starters-kit-3.1.2.rar到某个特定目录,这里我们首先用到的是包里...
jbpm-6.1.0.Final-installer是JBoss Business Process Management (jBPM)的一个发行版本,它是一个开源的工作流和业务流程管理(BPM)框架,由Red Hat公司开发并维护。jBPM旨在帮助企业和组织设计、执行、管理和监控...
jbpm-flow-builder-5.1.0.Final.jar jbpm5
- **jbpm-console-ng**:新一代的Web管理界面,提供更丰富的功能和更好的用户体验。 - **API与服务**:讲解如何通过RESTful API和JMS消息服务与JBPM交互。 - **集成工具**:包括Maven插件、Eclipse插件等,便于...
【jbpm-starters-kit-3.1.4 lib】是一个针对JBoss Business Automation Platform中jbpm(Java Business Process Management)的入门套件的库文件集合。这个版本3.1.4是jbpm的一个早期版本,它包含了运行和开发基于...
jbpm-starters-kit-3.1.2.插件,jbpm-starters-kit-3.1.2.插件,jbpm-starters-kit-3.1.2.插件,jbpm-starters-kit-3.1.2.插件,jbpm-starters-kit-3.1.2.插件,jbpm-starters-kit-3.1.2.插件,jbpm-starters-kit-...
- 将`jbpm-jpdl-suite-3.2.3/designer/eclipse/plugins`目录下的文件及文件夹复制到一个指定的目录,例如`D:\Genuitec\MyPlugins\jbpm-jpdl-designer-3.1.5`。 - 修改`CreatePluginsConfig.java`中的路径为`"D:\\...
2017年jBPM 正式发布了全新的 7版本。jBPM 是一个完全开源的业务流程管理(BPM)和案例管理解决方案。它支持流程和案例的完整生命... <artifactId>jbpm-test <version>7.3.0.Final 这与Gradle,Ivy和Buildr类似。