public ProcessDefinition from(org.activiti.engine.repository.ProcessDefinition internalProcessDefinition) { ProcessDefinitionImpl processDefinition = new ProcessDefinitionImpl(); processDefinition.setId(internalProcessDefinition.getId()); processDefinition.setName(internalProcessDefinition.getName()); processDefinition.setDescription(internalProcessDefinition.getDescription()); processDefinition.setVersion(internalProcessDefinition.getVersion()); processDefinition.setKey(internalProcessDefinition.getKey()); BpmnModel model = repositoryService.getBpmnModel(internalProcessDefinition.getId()); processDefinition.setFormKey(model.getStartFormKey(internalProcessDefinition.getKey())); return processDefinition; } }
bpmnModel = repositoryService.getBpmnModel(processDefinitionId);
@ApiOperation(value = "Get a process definition BPMN model", tags = {"Process Definitions"}, nickname = "getBpmnModelResource") @ApiResponses(value = { @ApiResponse(code = 200, message = "Indicates the process definition was found and the model is returned. The response contains the full process definition model."), @ApiResponse(code = 404, message = "Indicates the requested process definition was not found.") }) @RequestMapping(value = "/repository/process-definitions/{processDefinitionId}/model", method = RequestMethod.GET, produces = "application/json") public BpmnModel getModelResource(@ApiParam(name = "processDefinitionId", value="The id of the process definition to get the model for.") @PathVariable String processDefinitionId) { ProcessDefinition processDefinition = getProcessDefinitionFromRequest(processDefinitionId); return repositoryService.getBpmnModel(processDefinition.getId()); }
RepositoryService repositoryService = processEngine.getRepositoryService(); BpmnModel bpmnModel = repositoryService.getBpmnModel(processDefinitionId); List<Process> processes = bpmnModel.getProcesses(); for (Process p : processes) { Collection<FlowElement> elements = p.getFlowElements(); for (FlowElement element : elements) { if (element instanceof UserTask) { // do something } else if (element instanceof ServiceTask) { // do something } else if (element instanceof StartEvent) { // do something } } }
BpmnModel bpmnModel = repositoryService.getBpmnModel(pde.getId()); ProcessDiagramGenerator diagramGenerator = processEngineConfiguration.getProcessDiagramGenerator(); InputStream resource = diagramGenerator.generateDiagram(bpmnModel, "png", runtimeService.getActiveActivityIds(processInstance.getId()), Collections.<String> emptyList(),
@RequestMapping(value = "/admin/flow/image") public String image(Model model, String taskid, Pageable pageable, HttpServletRequest request) { Task task = taskService.createTaskQuery().taskId(taskid).singleResult(); model.addAttribute("task", task); if (task != null) { try { ProcessInstance processInstance = runtimeService.createProcessInstanceQuery() .processInstanceId(task.getProcessInstanceId()).singleResult(); ProcessDefinition definition = repositoryService.getProcessDefinition(task.getProcessDefinitionId()); ProcessDefinitionEntity processDefinitionEntity = (ProcessDefinitionEntity) definition; BpmnModel bpmnModel = repositoryService.getBpmnModel(processDefinitionEntity.getId()); GraphicInfo activityImpl = bpmnModel.getGraphicInfo(task.getTaskDefinitionKey()); model.addAttribute("x", activityImpl.getX()); model.addAttribute("y", activityImpl.getY()); model.addAttribute("width", activityImpl.getWidth()); model.addAttribute("height", activityImpl.getHeight()); } catch (Exception e) { } } return "/admin/flow/image"; }
BpmnModel bpmnModel = repositoryService.getBpmnModel(hiInstance .getProcessDefinitionId());
this.keys.put(model, definition.getKey()); this.identifiers.put(model, definition.getId()); BpmnModel bpmnModel = repositoryService.getBpmnModel(definition.getId()); if (bpmnModel != null) { int index = 1;
/** * 获取流程图(如果参数为空则获取部署流程图,如果参数不为空则获取实例流程图) * * @param <T> 数据类型 * @param requester 请求对象 * @param service 业务处理对象 * @return 流程图数据输入流 * @throws IOException IO操作异常 */ public static <T extends Model> InputStream getDiagram(Requester requester, Service<T> service) throws IOException { if (requester == null) { throw new IllegalArgumentException("Requester must not be null"); } if (service == null) { throw new IllegalArgumentException("Service must not be null"); } T entity = service.getQuery(requester, true).custom(requester.getParameters()).single(); List<ActivityNode> nodes = getNodes(service.getModel()); ProcessEngineConfiguration configuration = getEngine().getProcessEngineConfiguration(); ProcessDiagramGenerator diagramGenerator = configuration.getProcessDiagramGenerator(); RepositoryService repositoryService = getEngine().getRepositoryService(); String identifier = ((ProcessConfiguration) configuration).getIdentifier(service.getModel()); List<String> activities = entity == null ? Arrays.asList(nodes.get(0).getCode()) : entity.getStatus().equals( nodes.get(nodes.size() - 1).getId()) ? Arrays.asList(nodes.get(nodes.size() - 1).getCode()) : getEngine().getRuntimeService().getActiveActivityIds(entity.getProcess()); return diagramGenerator.generateDiagram(repositoryService.getBpmnModel(identifier), "png", activities, Collections.<String>emptyList(), configuration.getActivityFontName(), configuration.getLabelFontName(), configuration.getClassLoader(), 1.0); }
try { BpmnModel bpmnModel = repositoryService.getBpmnModel(processInstance.getProcessDefinitionId()); InputStream definitionImageStream = diagramGenerator.generateDiagram(bpmnModel, "png", runtimeService.getActiveActivityIds(processInstance.getId()), Collections.<String>emptyList(),
.getBpmnModel(hiInstance.getProcessDefinitionId());
@Override public InputStream generateDiagramPNG(String processInstanceId, String processName) { List<Execution> executions = runtimeService.createExecutionQuery().processInstanceId(processInstanceId).list(); List<String> activityIds = new ArrayList<>(); for (Execution execution : executions) { activityIds.addAll(runtimeService.getActiveActivityIds(execution.getId())); } if (activityIds.size() > 0) { ProcessEngineConfiguration processEngineConfiguration = processEngine.getProcessEngineConfiguration(); return new DefaultProcessDiagramGenerator().generateDiagram( repositoryService.getBpmnModel(getLatestProcessDefinition(processName).getId()), "png", activityIds, Collections.emptyList(), processEngineConfiguration.getActivityFontName(), processEngineConfiguration.getLabelFontName(), processEngineConfiguration.getAnnotationFontName(), processEngineConfiguration.getClassLoader(), 1.0 ); } else { return null; } }
/** * {@inheritDoc} */ public InputStream getWorkflowImage(String workflowInstanceId) { String processInstanceId = createLocalId(workflowInstanceId); ExecutionEntity pi = (ExecutionEntity) runtimeService.createProcessInstanceQuery() .processInstanceId(processInstanceId).singleResult(); // If the process is finished, there is no diagram available if (pi != null) { // Fetch the bpmn model BpmnModel model = repoService.getBpmnModel(pi.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; }
/** * {@inheritDoc} */ public InputStream getWorkflowImage(String workflowInstanceId) { String processInstanceId = createLocalId(workflowInstanceId); ExecutionEntity pi = (ExecutionEntity) runtimeService.createProcessInstanceQuery() .processInstanceId(processInstanceId).singleResult(); // If the process is finished, there is no diagram available if (pi != null) { // Fetch the bpmn model BpmnModel model = repoService.getBpmnModel(pi.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; }
public StreamResource buildStreamResource(String processInstanceId, String processDefinitionId, RepositoryService repositoryService, RuntimeService runtimeService, ProcessDiagramGenerator diagramGenerator, ProcessEngineConfiguration processEngineConfig) { StreamResource imageResource = null; ProcessDefinitionEntity processDefinition = (ProcessDefinitionEntity) ((RepositoryServiceImpl) repositoryService).getDeployedProcessDefinition(processDefinitionId); if (processDefinition != null && processDefinition.isGraphicalNotationDefined()) { BpmnModel bpmnModel = repositoryService.getBpmnModel(processDefinitionId); InputStream definitionImageStream = diagramGenerator.generateDiagram(bpmnModel, "png", runtimeService.getActiveActivityIds(processInstanceId), Collections.<String>emptyList(), processEngineConfig.getActivityFontName(), processEngineConfig.getLabelFontName(), processEngineConfig.getAnnotationFontName(), processEngineConfig.getClassLoader(), 1.0); StreamSource streamSource = new InputStreamStreamSource(definitionImageStream); // Create image name String imageExtension = extractImageExtension(processDefinition.getDiagramResourceName()); String fileName = processInstanceId + UUID.randomUUID() + "." + imageExtension; imageResource = new StreamResource(streamSource, fileName, ExplorerApp.get()); } return imageResource; }
public ProcessDefinition from(org.activiti.engine.repository.ProcessDefinition internalProcessDefinition) { ProcessDefinitionImpl processDefinition = new ProcessDefinitionImpl(); processDefinition.setId(internalProcessDefinition.getId()); processDefinition.setName(internalProcessDefinition.getName()); processDefinition.setDescription(internalProcessDefinition.getDescription()); processDefinition.setVersion(internalProcessDefinition.getVersion()); processDefinition.setKey(internalProcessDefinition.getKey()); BpmnModel model = repositoryService.getBpmnModel(internalProcessDefinition.getId()); processDefinition.setFormKey(model.getStartFormKey(internalProcessDefinition.getKey())); return processDefinition; } }
/** * 通过流程实例ID获取流程进度图 * * @param processInstanceId 流程实例ID * @return */ public InputStream viewProgressImage(String processInstanceId) { HistoricProcessInstance processInstance = historyService.createHistoricProcessInstanceQuery().processInstanceId(processInstanceId).singleResult(); ProcessDefinitionEntity processDefinition = (ProcessDefinitionEntity) ((RepositoryServiceImpl) repositoryService).getDeployedProcessDefinition(processInstance.getProcessDefinitionId()); ProcessEngineConfiguration processEngineConfig = ((ProcessEngineImpl) ProcessEngines.getDefaultProcessEngine()).getProcessEngineConfiguration(); ProcessDiagramGenerator diagramGenerator = processEngineConfig.getProcessDiagramGenerator(); if (processDefinition != null && processDefinition.isGraphicalNotationDefined()) { BpmnModel bpmnModel = repositoryService.getBpmnModel(processInstance.getProcessDefinitionId()); return diagramGenerator.generateDiagram(bpmnModel, "png", runtimeService.getActiveActivityIds(processInstance.getId()), Collections.emptyList(), processEngineConfig.getActivityFontName(), processEngineConfig.getLabelFontName(), processEngineConfig.getAnnotationFontName(), processEngineConfig.getClassLoader(), 1.0); } return null; }