简体   繁体   English

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

[英]Get Process Diagram with Service Task in Activiti

I'm using Activiti 5.22.0. 我正在使用Activiti 5.22.0。
I use Activiti Designer plugin in Eclispe to create a process. 我使用Eclispe中的Activiti Designer插件来创建进程。
Now I want to use a service task to get process diagram with current task higlighted and save it to database to show on web later. 现在,我想使用服务任务来获取带有当前任务的流程图,并将其保存到数据库中以便以后在Web上显示。
I'm new to Activiti so I really don't know what I should to write in Java class of Service Task to get process diagram image. 我是Activiti的新手,所以我真的不知道应该如何在Service Task的Java类中编写什么才能获取流程图。
Can you help me? 你能帮助我吗? Thank you very much. 非常感谢你。

Activiti comes with a Diagram generator in the org.activiti.image module. Activiti在org.activiti.image模块中带有一个Diagram生成器。 use can use the DefaultDiagramGenerator for your case. 使用可以为您的案例使用DefaultDiagramGenerator below is a sample code to get you started. 以下是示例代码,可以帮助您入门。 please inject the required services. 请注入所需的服务。

/**
 * 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;
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM