activiti7 会签
时间: 2023-09-10 13:10:11 浏览: 50
在Activiti7中,会签是通过多实例(Multi Instance)来实现的。可以使用Sequential参数设置多实例的执行顺序,true表示多实例顺序执行,而false表示多实例并行执行。Loop Cardinality参数用于指定会签人数,即循环基数。Completion Condition参数用于设置完成条件,可以根据预定义的变量进行设置,例如按数量、按比例、一票通过、一票否定等条件。在UEL表达式中可以直接使用预定义的变量来设置完成条件。
在代码中,可以使用以下方式来启动一个包含会签的流程实例:
1. 创建并部署一个包含会签的流程定义文件。
2. 定义一个Assignee集合,并在启动流程实例时将其赋值给一个变量。
3. 使用ProcessEngine的RuntimeService的startProcessInstanceByKey方法来启动流程实例,并将变量传递给该方法。
以下是一个示例代码:
```java
@Test
public void testStart() {
ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
Deployment deploy = processEngine.getRepositoryService()
.createDeployment()
.addClasspathResource("bpmn/multiInstance.bpmn")
.name("会签")
.deploy();
Map<String, Object> variables = new HashMap<>();
variables.put("approveUserList", Arrays.asList("zhagnsan", "lisi", "wangwu"));
processEngine.getRuntimeService()
.startProcessInstanceByKey("multiInstance", variables);
}
```
在该示例中,我们通过将"zhagnsan"、"lisi"和"wangwu"添加到Assignee集合中,并将其赋值给名为"approveUserList"的变量来启动流程实例。这个流程实例中的会签将依次执行,直到所有人完成审批。
请注意,这只是一个示例代码,你需要根据自己的实际需求进行相应的修改和适配。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* *3* [Activiti7工作流引擎:进阶篇(十一) 会签](https://blog.csdn.net/vbirdbest/article/details/122030104)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 100%"]
[ .reference_list ]