在 Activiti 中获取带有服务任务的流程图
Get Process Diagram with Service Task in Activiti
我正在使用 Activiti 5.22.0。
我在 Eclispe 中使用 Activiti Designer 插件来创建流程。
现在我想使用服务任务来获取突出显示当前任务的流程图并将其保存到数据库以便稍后在网络上显示。
我是Activiti的新手所以我真的不知道我应该在Service Task的Java class中写什么来获取流程图图像。
你能帮助我吗?
非常感谢。
Activiti 在 org.activiti.image
模块中带有图表生成器。 use 可以为您的情况使用 DefaultDiagramGenerator
。以下是帮助您入门的示例代码。请注入所需的服务。
/**
* Get Process instance diagram
*/
public InputStream getProcessDiagram(String processInstanceId) {
ProcessInstance processInstance = runtimeService.createProcessInstanceQuery()
.processInstanceId(processInstanceId).singleResult();
// null check
if (processInstance != null) {
// get process model
BpmnModel model = repositoryService.getBpmnModel(processInstance.getProcessDefinitionId());
if (model != null && model.getLocationMap().size() > 0) {
ProcessDiagramGenerator generator = new DefaultProcessDiagramGenerator();
return generator.generateDiagram(model, ActivitiConstants.PROCESS_INSTANCE_IMAGE_FORMAT,
runtimeService.getActiveActivityIds(processInstanceId));
}
}
return null;
}
我正在使用 Activiti 5.22.0。
我在 Eclispe 中使用 Activiti Designer 插件来创建流程。
现在我想使用服务任务来获取突出显示当前任务的流程图并将其保存到数据库以便稍后在网络上显示。
我是Activiti的新手所以我真的不知道我应该在Service Task的Java class中写什么来获取流程图图像。
你能帮助我吗?
非常感谢。
Activiti 在 org.activiti.image
模块中带有图表生成器。 use 可以为您的情况使用 DefaultDiagramGenerator
。以下是帮助您入门的示例代码。请注入所需的服务。
/**
* Get Process instance diagram
*/
public InputStream getProcessDiagram(String processInstanceId) {
ProcessInstance processInstance = runtimeService.createProcessInstanceQuery()
.processInstanceId(processInstanceId).singleResult();
// null check
if (processInstance != null) {
// get process model
BpmnModel model = repositoryService.getBpmnModel(processInstance.getProcessDefinitionId());
if (model != null && model.getLocationMap().size() > 0) {
ProcessDiagramGenerator generator = new DefaultProcessDiagramGenerator();
return generator.generateDiagram(model, ActivitiConstants.PROCESS_INSTANCE_IMAGE_FORMAT,
runtimeService.getActiveActivityIds(processInstanceId));
}
}
return null;
}