在Activiti中获取带有服务任务的流程图

问题描述 投票:0回答:1

我正在使用Activiti 5.22.0。 我在Eclispe中使用Activiti Designer插件来创建一个进程。 现在我想使用服务任务来获取当前任务高亮显示的流程图,并将其保存到数据库以便以后在Web上显示。 我是Activiti的新手,所以我真的不知道应该在Java类服务任务中编写什么来获取流程图图像。 你能帮助我吗?非常感谢你。

java activiti
1个回答
2
投票

Activiti在org.activiti.image模块中附带了一个Diagram生成器。使用可以使用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;
}
© www.soinside.com 2019 - 2024. All rights reserved.