flowable 自定义条件表达式获取流程变量示例
时间: 2023-08-18 13:36:07 浏览: 56
下面是一个获取流程变量的示例:
1. 自定义属性类
```java
public class ProcessVariableProperty implements CustomProperty {
protected String processVariableName;
@Override
public String getName() {
return "processVariable";
}
@Override
public String getSimpleValue() {
return processVariableName;
}
@Override
public void setSimpleValue(String value) {
processVariableName = value;
}
// getter and setter
}
```
2. 在BPMN模型中添加自定义属性
在BPMN模型中,找到要获取流程变量的节点,右键选择"Properties",在"Custom Properties"中添加一个名称为"processVariable"的属性,设置属性值为要获取的流程变量的名称。
3. 实现自定义条件表达式
```java
public class ProcessVariableExpression implements Expression {
protected String processVariableName;
@Override
public Object getValue(VariableScope variableScope) {
return variableScope.getVariable(processVariableName);
}
@Override
public void setValue(Object value, VariableScope variableScope) {
// do nothing
}
@Override
public String getExpressionText() {
return processVariableName;
}
// getter and setter
}
```
4. 实现自定义活动行为
```java
public class MyActivityBehavior extends AbstractBpmnActivityBehavior {
protected ProcessVariableProperty processVariableProperty;
@Override
public void execute(ActivityExecution execution) throws Exception {
String processVariableName = processVariableProperty.getProcessVariableName();
Object processVariableValue = execution.getVariable(processVariableName);
// do something with processVariableValue
leave(execution);
}
// getter and setter
}
```
5. 在BPMN模型中设置条件表达式
在BPMN模型中,找到要设置条件表达式的连线,右键选择"Properties",在"Sequence Flow Properties"中设置条件表达式,将类名设置为"ProcessVariableExpression",将方法名设置为"getValue"。
经过以上步骤,就可以在Flowable中自定义条件表达式并获取流程变量了。