flowable字段说明
时间: 2024-08-14 17:02:53 浏览: 142
Flowable是一个开源的工作流和业务流程管理平台,它基于Java和Spring框架构建。在Flowable中,字段通常是用于存储任务、流程实例或用户任务相关信息的数据容器。
1. **Process Variables**: 这些是流程实例级别的变量,可以由流程引擎动态创建并分配给任务。比如String、Integer等基本类型,或者是自定义的对象。
2. **Task Variables**: 当任务被分配给用户时,会关联一些变量。它们可以是用户需要填写的信息或者任务处理过程中的临时数据。
3. **Local Variables**: 本地变量是在特定活动(Activity)上下文中使用的,仅对该活动有效。
4. **Transient Variables**: 与局部变量类似,但当任务结束时,Transient Variables会被清除,不会持久化到流程实例中。
5. **Custom Variables**: 用户可以创建自定义类型的变量,并通过Type-safe Mapping在流程定义中引用它们。
6. **Form Properties**: 如果任务有表单关联,表单属性就是用来存储用户填写表单时输入的数据。
相关问题
你能举个例子说明在Flowable中如何使用自定义函数来进行条件判断吗?
在Flowable这个工作流引擎中,你可以通过BPMN流程图或者Process Engine API来使用JavaScript或者其他支持的语言编写自定义函数进行条件判断。例如,如果你想要在任务分配时基于某个业务规则进行决策,可以创建一个用户任务,并添加一个用户输入字段,然后定义一个`Script Task`。
下面是一个简单的示例:
```java
// 创建一个Script Task
TaskService taskService = processEngine.getTaskService();
ScriptedVariable scriptVar = new ScriptedVariable("myCustomCondition", "javascript");
scriptVar.setScriptText("return MyCustomFunction(employeeId, department);"); // 假设MyCustomFunction是你自定义的函数
FormProperties formProperties = new FormProperties();
formProperties.setVariables(Collections.singletonMap("myCustomCondition", scriptVar));
TaskDefinition taskDef = taskService.newTaskBuilder()
.processInstanceId(processInstanceId)
.name("My Task")
.(formProperties)
.create();
// 自定义函数 MyCustomFunction 可能长这样:
public Boolean MyCustomFunction(String memberId, String department) {
// 这里根据employeeId和department返回true或false
if (memberId.equals("123") && department.equals("Sales")) {
return true;
}
return false;
}
阅读全文