runtimeService.startProcessInstanceById 启动流程实例时设置名称
时间: 2024-04-08 22:29:50 浏览: 255
对于Flowable的`runtimeService.startProcessInstanceById`方法,它是根据流程定义的ID来启动流程实例的。在启动流程实例时设置名称,可以使用`ProcessInstanceBuilder`对象来完成。以下是示例代码:
```java
ProcessInstanceBuilder processInstanceBuilder = runtimeService.createProcessInstanceBuilder();
ProcessInstance processInstance = processInstanceBuilder
.processDefinitionId(processDefinitionId)
.name("My Process Instance")
.start();
```
在上述示例中,我们首先创建了一个`ProcessInstanceBuilder`对象,然后通过调用`processDefinitionId`方法设置流程定义的ID(即要启动的流程实例的流程定义ID)。接下来,我们使用`name`方法设置流程实例的名称为"My Process Instance"。最后,调用`start`方法启动流程实例。
请注意,`processDefinitionId`需要替换为你实际使用的流程定义ID,而且你可能还需要根据需要进行其他设置。
相关问题
flowable 中runtimeService.startProcessInstanceById(procDefId, variables); 开启的流程,通过HistoricProcessInstanceQuery可以查询到吗
在 Flowable 中,通过 `runtimeService.startProcessInstanceById(procDefId, variables)` 方法启动的流程实例可以通过 `HistoricProcessInstanceQuery` 进行查询。虽然该方法是用于启动新的流程实例,但一旦流程实例完成或终止,相关的历史记录会被保存,可以通过 `HistoricProcessInstanceQuery` 进行访问和查询。
下面是一个示例代码片段,演示如何使用 `HistoricProcessInstanceQuery` 查询通过 `startProcessInstanceById` 启动的流程实例:
```java
List<HistoricProcessInstance> processInstances = historyService.createHistoricProcessInstanceQuery()
.processDefinitionId(procDefId)
.list();
for (HistoricProcessInstance processInstance : processInstances) {
// 处理流程实例
String processInstanceId = processInstance.getId();
// ...
}
```
在上述代码中,我们使用 `createHistoricProcessInstanceQuery` 方法创建一个 `HistoricProcessInstanceQuery` 对象,并通过调用 `processDefinitionId` 方法指定要查询的流程定义ID。然后,通过调用 `list` 方法获取满足条件的历史流程实例列表。
请注意,以上代码只是一个示例,具体的实现方式可能因你的具体业务需求而略有不同。你可以根据自己的具体情况进行调整和修改。
identityService.setAuthenticatedUserId(sysUser.getUserId().toString()); variables.put(ProcessConstants.PROCESS_INITIATOR, sysUser.getUserId()); variables.put("duration",dayStr); String procinstId = runtimeService.startProcessInstanceById(procDefId, variables).getId();
这段代码是在启动流程实例之前,设置了当前用户的身份信息,并且传入了一些启动流程时需要的变量。其中,sysUser是一个系统用户对象,用于获取用户ID,ProcessConstants.PROCESS_INITIATOR是一个自定义的变量,用于标识流程的发起人,"duration"是一个自定义的变量,用于标识流程需要的持续时间。在启动流程实例时,会将这些变量传入,以便流程中的节点可以使用这些变量。最后,该代码会返回流程实例的ID。
阅读全文