【flowable学习4】流程节点参数设置

在Flowable中,流程节点参数设置通常指的是在流程定义中为特定的任务节点(例如用户任务、服务任务等)设置属性。这些属性可以控制节点的行为,如任务的分配、表单的显示、执行监听器等。以下是一些常见的方式来设置流程节点的参数:

1. 在BPMN模型编辑器中设置

当你使用Flowable Designer(集成在Eclipse中的插件)或者Flowable Modeler(Flowable UI应用的一部分)来设计流程时,你可以通过以下方式设置节点参数:

  • 用户任务(User Task)
    • 分配:可以设置任务的候选用户、候选组、分配者等。
    • 表单:可以选择一个预定义的表单或者关联一个外部表单。
    • 多实例:如果需要为多个参与者创建任务实例,可以启用多实例特性。
    • 优先级:为任务设置优先级。
    • 任务监听器:为任务添加监听器,以便在任务状态变化时执行自定义逻辑。
  • 服务任务(Service Task)
    • 实现:可以选择Java类、表达式、委托表达式、外部服务等。
    • 字段:可以设置传递给服务任务的字段值。
  • 网关(Gateway)
    • 类型:可以设置网关的类型,如排他网关、并行网关、包容网关等。
    • 条件:对于排他网关,可以设置流出的序列流的条件。

2. 通过XML配置

在BPMN 2.0 XML文件中,可以直接编辑XML代码来设置节点参数。以下是一个用户任务的示例:

<
Flowable中,动态设置每个节点的审批人参数可以通过多种方式实现。以下是一些常见的方法: 1. **使用表达式(Expression)**: 你可以在流程定义中使用表达式来动态设置审批人。例如,可以在流程启动时传递一个变量,然后在流程定义中使用这个变量来设置审批人。 ```xml <userTask id="approveTask" name="Approve" flowable:assignee="${approver}"> ... </userTask> ``` 在启动流程时,可以设置`approver`变量: ```java Map<String, Object> variables = new HashMap<>(); variables.put("approver", "userId"); runtimeService.startProcessInstanceByKey("processKey", variables); ``` 2. **使用监听器(Listener)**: 你可以使用任务监听器或执行监听器来动态设置审批人。在监听器中,你可以编写自定义逻辑来获取审批人并设置到任务中。 ```xml <userTask id="approveTask" name="Approve"> <extensionElements> <flowable:taskListener event="create" class="com.example.ApproveTaskListener"/> </extensionElements> </userTask> ``` 在监听器中: ```java public class ApproveTaskListener implements TaskListener { @Override public void notify(DelegateTask delegateTask) { String approver = getApprover(); delegateTask.setAssignee(approver); } private String getApprover() { // 自定义逻辑获取审批人 return "userId"; } } ``` 3. **使用业务规则任务(Business Rule Task)**: 你可以使用业务规则任务来根据业务规则动态设置审批人。业务规则任务可以根据输入数据执行规则引擎,并返回审批人。 ```xml <businessRuleTask id="ruleTask" name="Rule Task" flowable:ruleVariablesInput="inputVariables" flowable:resultVariable="approver"> ... </businessRuleTask> <userTask id="approveTask" name="Approve" flowable:assignee="${approver}"> ... </userTask> ``` 4. **使用脚本任务(Script Task)**: 你可以使用脚本任务来动态设置审批人。在脚本任务中,你可以编写脚本代码来获取审批人并设置到流程变量中。 ```xml <scriptTask id="scriptTask" name="Script Task" scriptFormat="groovy"> <script> def approver = getApprover() execution.setVariable("approver", approver) </script> </scriptTask> <userTask id="approveTask" name="Approve" flowable:assignee="${approver}"> ... </userTask> ``` 通过以上方法,你可以根据实际需求动态设置每个节点的审批人参数。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值