flowable引擎如何读取act_ru_variable表中的数据
时间: 2023-06-08 13:04:42 浏览: 165
Flowable 引擎可以通过在流程执行期间访问 Activiti 运行时服务来读取 act_ru_variable 表中的数据。具体地说,可以使用以下代码获取变量值:
RuntimeService runtimeService = processEngine.getRuntimeService();
String variableValue = runtimeService.getVariable(executionId, variableName);
其中,executionId 表示流程实例 ID,variableName 表示要读取的变量名。
相关问题
flowable 中 根据act_ru_task表什么信息可以查出发起人
根据`act_ru_task`表,可以通过以下信息查出发起人:
1. `PROC_INST_ID_`字段:该字段为流程实例ID,可以通过该字段查询到流程实例对应的所有任务。
2. `ASSIGNEE_`字段:该字段为任务的受理人,如果该任务是由用户自己创建的,则该字段为发起人。
3. `CREATE_BY`字段:该字段为任务的创建人,如果该任务是由用户自己创建的,则该字段为发起人。
综上所述,可以通过查询`act_ru_task`表中`PROC_INST_ID_`字段对应的所有任务,并判断任务的`ASSIGNEE_`字段或`CREATE_BY`字段是否为该流程实例的发起人,从而查出发起人。
java如何操作flowable的TASK_CREATED监听在ACT_RU_IDENTITYLINK表产生数据后执行
可以通过在Flowable的配置文件中配置一个监听器,在任务被创建时触发并执行一些逻辑。具体步骤如下:
1. 创建一个类并实现FlowableEventListener接口,重写onEvent方法,在该方法中判断事件类型是否为TASK_CREATED,如果是,则获取任务信息并执行需要的操作。
```java
public class TaskCreatedEventListener implements FlowableEventListener {
@Override
public void onEvent(FlowableEvent event) {
if (event instanceof FlowableEntityEvent) {
FlowableEntityEvent entityEvent = (FlowableEntityEvent) event;
if (FlowableEngineEventType.TASK_CREATED.equals(entityEvent.getType())) {
TaskEntity taskEntity = (TaskEntity) entityEvent.getEntity();
// 获取任务信息并执行需要的操作
}
}
}
@Override
public boolean isFailOnException() {
return false;
}
}
```
2. 在Flowable的配置文件中配置监听器,并设置监听器的优先级。在该配置中,需要将任务创建事件与监听器进行关联。
```xml
<bean id="taskCreatedEventListener" class="com.example.TaskCreatedEventListener"/>
<bean id="flowableEventRegistry" class="org.flowable.spring.registry.DefaultFlowableEventListenerRegistry">
<property name="eventListeners">
<list>
<bean class="org.flowable.spring.event.registry.GenericEventListenerContainer">
<property name="eventTypes">
<list>
<value>TASK_CREATED</value>
</list>
</property>
<property name="eventListener">
<ref bean="taskCreatedEventListener"/>
</property>
<property name="priority" value="100"/>
</bean>
</list>
</property>
</bean>
```
3. 在ACT_RU_IDENTITYLINK表产生数据后执行需要的操作,可以在监听器中进行判断并执行。
```java
public class TaskCreatedEventListener implements FlowableEventListener {
@Autowired
private RuntimeService runtimeService;
@Override
public void onEvent(FlowableEvent event) {
if (event instanceof FlowableEntityEvent) {
FlowableEntityEvent entityEvent = (FlowableEntityEvent) event;
if (FlowableEngineEventType.TASK_CREATED.equals(entityEvent.getType())) {
TaskEntity taskEntity = (TaskEntity) entityEvent.getEntity();
// 判断任务的identity link是否已经创建
boolean isIdentityLinkCreated = runtimeService.createIdentityLinkQuery()
.taskId(taskEntity.getId())
.count() > 0;
if (isIdentityLinkCreated) {
// 执行需要的操作
}
}
}
}
@Override
public boolean isFailOnException() {
return false;
}
}
```
通过以上步骤,就可以实现在任务创建时监听ACT_RU_IDENTITYLINK表的数据变化并执行需要的操作。
阅读全文