`
songxh2
  • 浏览: 132527 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

activiti 会签usertask multiInstance

阅读更多
要把一个节点设置为多实例,节点xml元素必须设置一个multiInstanceLoopCharacteristics子元素。
<multiInstanceLoopCharacteristics isSequential="false|true">
...
</multiInstanceLoopCharacteristics>


isSequential属性表示节点是进行 顺序执行还是并行执行。
实例的数量会在进入节点时计算一次。 有一些方法配置它。一种方法是使用loopCardinality子元素直接指定一个数字。
<multiInstanceLoopCharacteristics isSequential="false|true">
<loopCardinality>5</loopCardinality>
</multiInstanceLoopCharacteristics>


也可以使用结果为整数的表达式:

<multiInstanceLoopCharacteristics isSequential="false|true">
<loopCardinality>${nrOfOrders-nrOfCancellations}</loopCardinality>
</multiInstanceLoopCharacteristics>


另一个定义实例数目的方法是,通过loopDataInputRef子元素,设置一个类型为集合的流程变量名。 对于集合中的每个元
素,都会创建一个实例。 也可以通过inputDataItem子元素指定集合。 下面的代码演示了这些配置:

<userTask id="miTasks" name="My Task ${loopCounter}" activiti:assignee="${assignee}">
<multiInstanceLoopCharacteristics isSequential="false">
<loopDataInputRef>assigneeList</loopDataInputRef>
<inputDataItem name="assignee" />
</multiInstanceLoopCharacteristics>
</userTask>


假设assigneeList变量包含这些值[kermit, gonzo, foziee]。 在上面代码中,三个用户任务会同时创建。每个分支都会拥
有一个用名为assignee的流程变量, 这个变量会包含集合中的对应元素,在例子中会用来设置用户任务的分配者。
loopDataInputRef和inputDataItem的缺点是1)名字不好记, 2)根据BPMN 2.0格式定义,它们不能包含表达式。activiti
通过在 multiInstanceCharacteristics中设置 collection和 elementVariable属性解决了这个问题:

<userTask id="miTasks" name="My Task" activiti:assignee="${assignee}">
<multiInstanceLoopCharacteristics isSequential="true"
activiti:collection="${myService.resolveUsersForTask()}" activiti:elementVariable="assignee" >
</multiInstanceLoopCharacteristics>
</userTask>

多实例节点在所有实例都完成时才会结束。也可以指定一个表达式在每个实例结束时执行。 如果表达式返回true,所有其
他的实例都会销毁,多实例节点也会结束,流程会继续执行。 这个表达式必须定义在completionCondition子元素中。

<userTask id="miTasks" name="My Task" activiti:assignee="${assignee}">
<multiInstanceLoopCharacteristics isSequential="false"
activiti:collection="assigneeList" activiti:elementVariable="assignee" >
<completionCondition>${nrOfCompletedInstances/nrOfInstances >= 0.6 }</completionCondition>
</multiInstanceLoopCharacteristics>
</userTask>


在这里例子中,会为assigneeList集合的每个元素创建一个并行的实例。 当60%的任务完成时,其他任务就会删除,流程
继续执行。
分享到:
评论

相关推荐

    activiti 会签投票统计

    在这个主题中,"activiti 会签投票统计" 涉及到 Activiti 的特定功能,特别是会签(Parallel Multi-instance)和自定义事件监听器,用于收集和分析参与者的投票结果。 1. **会签(Parallel Multi-instance)**: ...

    Activiti多实例任务实现会签

    【描述】"Activiti多实例任务实现会签"这一主题主要关注的是如何通过Activiti的工作流定义语言(BPMN 2.0)中的`user task`元素,结合`multi-instance`属性来创建一个需要多人签字的任务。这种任务的特点是,每个...

    Activiti-5.4中实现会签

    在Activiti中,这通常通过多实例任务(Multi-instance Task)来实现。 1. **配置多实例任务**:在BPMN 2.0流程图中,我们可以使用`miBody`元素来定义一个多实例任务。例如,使用`userTask`并添加`camunda:...

    activiti取会签人员

    在用activiti的时候经常遇到取会签人员的问题,这个文档解决怎么获取会签人员。

    Activiti实现会签功能程序Demo.docx

    在Activiti工作流引擎中,会签功能是通过多实例任务(Multi-instance Task)来实现的。这使得流程能够根据特定的规则分配给多个参与者,且这些参与者可以同时进行处理。 **会签类型** 1. **按数量通过**:当参与...

    activiti学习-使用activiti多实例任务实现会签

    ### Activiti多实例任务实现会签功能详解 #### 一、多实例用户任务的基本概念与配置 Activiti是一个开源的工作流引擎,它提供了一种灵活的方式来定义业务流程,并且能够支持复杂的业务逻辑处理。其中,多实例任务...

    工作流Activiti的学习总结(十)Activiti手动执行的应用(UserTask)

    在本篇博文中,我们将深入探讨工作流引擎Activiti中手动执行任务(UserTask)的应用。Activiti是一款开源的工作流和业务流程管理(BPM)系统,它提供了强大的流程定义、执行和监控能力。在这个学习总结中,我们将专注于...

    Jeecg集成activiti.docx

    Jeecg集成activiti.docx Jeecg集成activiti是一个关于如何将activiti集成到Jeecg平台上的指南。下面是从给定的文件中提取的相关知识点: 1. activiti项目结构:activiti项目是一个Maven项目,包含了数据库文件,...

    activiti-userguide-5-16

    这个“activiti-userguide-5-16”压缩包文件包含了 Activiti 5.16 版本的用户指南,帮助我们深入理解并有效使用这个流程管理工具。 1. **BPMN 2.0 规范**:Business Process Model and Notation 2.0(业务流程模型...

    activiti-explorer.war+Activiti_User_Guide_5.16.pdf

    这个压缩包包含两个关键组件:“activiti-explorer.war”和“Activiti_User_Guide_5.16.pdf”。 “activiti-explorer.war” 文件是一个Web应用程序的归档文件,通常在Java平台上的应用服务器如Tomcat或Jetty中部署...

    activiti数据结构详情

    6. **ACT_RU_TASK**:运行时任务表,表示工作流中的任务实例,包含任务ID、任务名称、分配给谁等。 7. **ACT_RU_VARIABLE**:运行时变量表,存储流程实例和任务实例中的变量值。 8. **ACT_RU_EVENT_SUBSCR**:事件...

    Activiti审批汇总流程

    伪汇总审批,就是每一条流程都是独立的,这些独立的流程在走到某个节点的时候,这个节点的审批人可以一次性进行多个任务的审批

    工作流官网的activiti-5.22.0.zip

    Activiti 是一个开源的工作流和业务流程管理(BPM)系统,它被广泛应用于企业级应用中,用于自动化业务流程。这个"activiti-5.22.0.zip"文件包含了Activiti 5.22.0版本的所有组件和资源,是理解、学习和部署Activiti...

    activiti 5.22 退回代码

    工作流 activiti 5.22 退回代码实现。 activiti在设计的时候没有回退相关的操作,回退是中国特有的特色。这里写一个比较简单的回退。不支持回退到并行网关前面节点,虽然回退到前面节点不会报错 但会导致任务无法...

    Activiti 学习笔记13:分配组任务

    在流程定义中,可以使用`&lt;userTask&gt;`元素并设置`assignee`属性为组的ID来分配任务给组。例如: ```xml &lt;userTask id="taskForGroup" name="组任务" assignee="myGroupId"/&gt; ``` `myGroupId`应替换为实际组的ID...

    Activiti6用户指南

    ### Activiti6 用户指南知识点详解 #### 一、概述与许可 - **许可协议**:Activiti6基于Apache V2许可证发布,这意味着它遵循开放源代码许可证条款,允许用户自由使用、修改和分发该软件及其衍生作品。 - **下载...

    activiti5.14-javadoc

    会签(Multi-instance)支持并行处理多个子任务,`multi-instance` 属性在 BPMN 图形中可配置。 6. **信号与消息启动**:`SignalEventReceived()` 方法可用于发送信号,触发等待该信号的并发分支。而消息启动事件...

    Activiti6示例代码及应用

    在Activiti6中,多实例任务(Multi-instance tasks)允许对一组相似的任务进行并行处理。例如,审批流程中可能需要多个部门同时审批。示例可能演示了如何配置多实例任务,以及如何处理它们的完成条件和并发性问题。...

    Activiti 5.16 中文手册

    在实际应用中,Activiti还支持与各种系统的集成,如通过Service Task调用外部服务,或者利用Event Subprocess来响应外部事件。手册会讲解如何设置这些交互,以实现更灵活的流程自动化。 最后,手册可能还会包含一些...

Global site tag (gtag.js) - Google Analytics