Activiti6多实例

多实例可以配置在各种类型的任务节点、子流程、回调活动节点上。下图红色方框是涉及多实例需要配置的字段:

  • 多实例包含的默认变量,可以通过execution.getVariable(x)方法获取

nrOfInstances:创建的实例总数

nrOfActiveInstances当前活动的实例数,针对顺序类型的多实例,该变量值等于1

nrOfCompletedInstances:已执行实例数

loopCounter:表示多实例流程循环的下标

  • 多实例类型

顺序(sequential ):按顺序出实例,当前活动实例数(nrOfActiveInstances)一直是1

并行(parallel):多个实例会同时并行发放给处理人

  • 多实例基数

定义多实例生成的实例数。当结合采集方式生成多实例时,该基数只能小于或等于采集集合的size,否则执行过程中将发生系统错误 NoSuchElementException;当基数小于采集集合的size时,则按照集合中元素的顺序生成等于基数指定数量的实例。如果不配合使用采集方式,也可以直接指定基数,则系统会同时生成指定数量的相同实例。

  • 多实例采集

用于指定一个List,自动生成等于List size数量的实例。可以将该List设置为处理人员列表,然后设置元素变量名,并将分配—固定值—处理人/代理人设置为元素变量名,则最后会为每一个集合中的人员生成一个已指派实例。

  • 多实例元素变量

表示多实例采集中元素对应的变量,该变量保存着集合中元素的最新值,可以使用表达式获取。

  • 多实例完成条件

是一个表达式,如果返回值为true则该多实例自动结束。例如 ${nrOfCompletedInstances/nrOfInstances >= 0.6 } 只要所有流程实例完成了60%即该多实例任务结束。

  • 分配

在使用多实例的情况下,当将分配—固定值—处理人/代理人/候选人设置为多实例元素变量名时,则生成的实例会对应自动指派给列表中配置的处理人。

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Activiti 是一个开源的工作流引擎,支持并行多实例节点加签功能。在流程定义中,可以通过添加多实例属性来定义一个节点为并行多实例节点。并行多实例节点可以将一个任务同时分配给多个参与者处理。 要将一个节点定义为并行多实例节点,可以在节点的XML中添加以下属性: ``` <userTask id="task1" name="Task 1" activiti:assignee="${assignee}" activiti:multiInstanceLoopCharacteristics="_activiti_parallel"> ... </userTask> ``` 其中,`activiti:assignee` 属性用于指定任务的执行人,可以使用表达式来动态指定。`activiti:multiInstanceLoopCharacteristics` 属性用于指定并行多实例的循环特性。 在节点定义中,可以添加多实例的属性和子元素来定义循环的次数和条件,比如: ``` <activiti:multiInstanceLoopCharacteristics isSequential="false" activiti:collection="${users}" activiti:elementVariable="user"> <activiti:loopCardinality>${nrOfCandidates}</activiti:loopCardinality> ... </activiti:multiInstanceLoopCharacteristics> ``` 其中,`isSequential` 属性用于指定循环需要按顺序执行还是并行执行。`activiti:collection` 属性用于指定循环的集合,可以是一个变量或表达式。`activiti:elementVariable` 属性用于指定循环中的变量名。`activiti:loopCardinality` 属性用于指定循环的次数。 通过加签功能,可以将任务同时分配给多个参与者处理,提高处理效率。每个参与者可以独立处理任务,并在处理完成后将结果反馈给流程引擎。流程引擎会根据加签节点的配置,汇总参与者的处理结果,并决定流程的后续走向。 总而言之,Activiti 的并行多实例节点加签功能可以帮助流程引擎实现任务的并行处理,提高工作效率和流程的灵活性。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值