1、会签是什么? 会签功能指多个人员针对同一个事务进行协商处理,共同签署决定一件事情。 在工作流中会签,是指多个人员在同一个环节进行处理,同一环节的有多个处理人并行处理,按照配置规则,固定比例的人员办理完成后即可继续流转至下一环节。 【会签功能详解】 会签,作为一种协同决策的机制,是指多个参与者对同一项事务进行共同审查和签署,以达成共识。在工作流系统中,会签被广泛应用于需要多人参与决策的流程环节,比如审批、审核等。在这个过程中,多个处理人可以并行处理同一环节的任务,一旦达到预先设定的数量或比例条件,流程就可以继续流转到下一个阶段。 在Activiti工作流引擎中,会签功能是通过多实例任务(Multi-instance Task)来实现的。这使得流程能够根据特定的规则分配给多个参与者,且这些参与者可以同时进行处理。 **会签类型** 1. **按数量通过**:当参与会签的人员中有指定数量的人完成任务并同意后,整个会签过程结束。 2. **按比例通过**:当一定比例的参与者完成任务并同意后,会签结束。 3. **一票否决**:只要有一个人对决策持反对意见,会签即告失败。 4. **一票通过**:只要有一个人同意,会签即被认为通过。 **Activiti实现会签的步骤** 1. **定义流程图XML**:在流程图XML中,使用`<userTask>`元素表示会签任务,并添加`<multiInstanceLoopCharacteristics>`子元素来定义多实例特性。`isSequential`属性设为`false`,表示并行处理;`activiti:collection`定义参与会签的人员列表;`activiti:elementVariable`为每个处理人的变量名。 2. **配置会签规则**:通过`completionCondition`属性,我们可以设置完成条件,例如,如果所有参与者都完成任务,或者满足特定比例的参与者完成任务,则视为会签完成。 3. **监听器与任务监听**:可以添加`<taskListener>`扩展元素来监听任务的完成事件,如这里的`SignListener`,在用户完成任务时执行相关逻辑。 4. **业务逻辑处理**:在`SignListener`类中,实现对会签结果的判断和处理,如计算通过数量、比例,更新流程状态等。 示例流程图XML代码: ```xml <userTask id="usertask2" name="会签" activiti:assignee="${signer}"> <extensionElements> <activiti:taskListener event="complete" class="cn.com.xu.applyHoliday.SignListener"></activiti:taskListener> </extensionElements> <multiInstanceLoopCharacteristics isSequential="false" activiti:collection="${signList}" activiti:elementVariable="signer"> <completionCondition>${pass == false}</completionCondition> </multiInstanceLoopCharacteristics> </userTask> ``` 以上代码展示了如何在Activiti流程中配置一个会签任务。在这个例子中,`SignListener`会在任务完成时触发,根据`completionCondition`判断是否所有参与者都完成任务,如果满足条件则继续流程,否则等待其他参与者完成。 Activiti通过提供多实例任务和相应的监听器机制,为企业级工作流应用提供了灵活的会签功能,使得复杂决策过程得以高效、有序地进行。在实际开发中,可以根据具体业务需求调整会签规则和流程逻辑,确保工作的顺利进行。
剩余7页未读,继续阅读
- 粉丝: 186
- 资源: 135
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助