### 步骤
下面是在 Flowable 中获取当前节点的一般步骤,我们将会逐一解释每个步骤以及所需的代码示例。
| 步骤 | 操作 |
| ------ | ------ |
| 1 | 获取当前流程实例 |
| 2 | 获取当前执行任务 |
| 3 | 获取当前节点 |
| 4 | 获取当前节点的信息 |
### 代码示例
1. 获取当前流程实例
```java
// 获取当前流程实例
RuntimeService runtimeService = processEngine.getRuntimeService(); // 获取 RuntimeService
String processInstanceId = "当前流程实例的ID"; // 通过某种方式获取当前流程实例的ID
Execution execution = runtimeService.createExecutionQuery()
.processInstanceId(processInstanceId)
.singleResult(); // 通过流程实例ID查询执行对象
```
在代码示例中,我们首先通过 RuntimeService 获取当前流程实例,然后通过流程实例ID查询执行对象。
2. 获取当前执行任务
```java
// 获取当前执行任务
TaskService taskService = processEngine.getTaskService(); // 获取 TaskService
Task task = taskService.createTaskQuery()
.executionId(execution.getId())
.singleResult(); // 通过执行对象ID查询当前任务
```
在这段代码中,我们通过 TaskService 获取当前执行任务,并通过执行对象ID查询当前任务。
3. 获取当前节点
```java
// 获取当前节点
BpmnModel bpmnModel = processEngine.getRepositoryService().getBpmnModel(task.getProcessDefinitionId()); // 通过当前任务的流程定义ID获取 BPMN 模型
FlowNode flowNode = (FlowNode) bpmnModel.getMainProcess().getFlowElement(task.getTaskDefinitionKey()); // 通过任务定义的 key 获取当前节点
```
这段代码展示了如何通过任务的流程定义ID获取 BPMN 模型,并通过任务定义的 key 获取当前节点。
4. 获取当前节点的信息
```java
// 获取当前节点的信息
String nodeId = flowNode.getId(); // 获取当前节点的 ID
String nodeName = flowNode.getName(); // 获取当前节点的名称
String nodeType = flowNode.getClass().getSimpleName(); // 获取当前节点的类型
```
最后,我们通过获取的当前节点对象可以获得当前节点的ID、名称和类型等信息。
通过以上步骤和代码示例,我们可以在 Flowable 中轻松地获取当前节点的信息,并根据需要执行相应的操作。希望这篇文章对于初学者理解如何在 Flowable 中获取当前节点有所帮助。如果有任何疑问或想要了解更多关于 Flowable 的内容,欢迎继续探索和提出问题。祝学习顺利!