Hi,
I am using activiti in my spring web application. I would like to show to the end user, where current status of process in process. Is any other way to show like this?
Hi,
I am using activiti in my spring web application. I would like to show to the end user, where current status of process in process. Is any other way to show like this?
You can generating diagram for process or diagram por instance in process, in my case I have a test unit to generate a image of instance process diagram:
@Test
@Deployment(resources = {"org/activiti/test/BoundaryTimerTest.bpmn20.xml"})
public void testGetProcessInstanceDiagram() throws IOException {
logger.info("Test of instance diagram process...");
RuntimeService runtimeService = activitiRule.getRuntimeService();
RepositoryService repositoryService = activitiRule.getRepositoryService();
ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("BoundaryTimerTest");
assertNotNull(processInstance);
String processInstanceId = processInstance.getId();
logger.info("Process Id = " + processInstanceId);
ExecutionEntity pi = (ExecutionEntity) runtimeService.createProcessInstanceQuery().processInstanceId(processInstanceId).singleResult();
ProcessDefinitionEntity pde = (ProcessDefinitionEntity) ((RepositoryServiceImpl) repositoryService).getDeployedProcessDefinition(pi.getProcessDefinitionId());
if (pde != null && pde.isGraphicalNotationDefined()) {
BpmnModel bpmnModel = repositoryService.getBpmnModel(pde.getId());
ProcessDiagramGenerator processDiagramGenerator = new DefaultProcessDiagramGenerator();
InputStream is = processDiagramGenerator.generateDiagram(bpmnModel, "png", runtimeService.getActiveActivityIds(processInstanceId));
byte[] buffer = new byte[is.available()];
is.read(buffer);
File imageFile = new File("D:/diagram-" + processInstanceId + ".png");
FileOutputStream fileOutputStream = new FileOutputStream(imageFile);
fileOutputStream.write(buffer);
fileOutputStream.close();
}
assertNotNull(processInstance.getProcessInstanceId());
}
You can need this dependency:
<dependency>
<groupId>org.activiti</groupId>
<artifactId>activiti-image-generator</artifactId>
<version>5.16.1</version>
</dependency>
Regards.
Hi!
How has initialize your getFormService(), getRepository() and getRuntime()?
In my case I create a ActivitiRule, for example:
@Rule
public ActivitiRule activitiRule = new ActivitiRule();
And now in my method testListFields():
RuntimeService runtimeService = activitiRule.getRuntimeService();
RepositoryService repositoryService = activitiRule.getRepositoryService();
ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("BoundaryTimerTest");
Regards.
You can generating diagram for process or diagram por instance in process, in my case I have a test unit to generate a image of instance process diagram:
@Test
@Deployment(resources = {"org/activiti/test/BoundaryTimerTest.bpmn20.xml"})
public void testGetProcessInstanceDiagram() throws IOException {
logger.info("Test of instance diagram process...");
RuntimeService runtimeService = activitiRule.getRuntimeService();
RepositoryService repositoryService = activitiRule.getRepositoryService();
ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("BoundaryTimerTest");
assertNotNull(processInstance);
String processInstanceId = processInstance.getId();
logger.info("Process Id = " + processInstanceId);
ExecutionEntity pi = (ExecutionEntity) runtimeService.createProcessInstanceQuery().processInstanceId(processInstanceId).singleResult();
ProcessDefinitionEntity pde = (ProcessDefinitionEntity) ((RepositoryServiceImpl) repositoryService).getDeployedProcessDefinition(pi.getProcessDefinitionId());
if (pde != null && pde.isGraphicalNotationDefined()) {
BpmnModel bpmnModel = repositoryService.getBpmnModel(pde.getId());
ProcessDiagramGenerator processDiagramGenerator = new DefaultProcessDiagramGenerator();
InputStream is = processDiagramGenerator.generateDiagram(bpmnModel, "png", runtimeService.getActiveActivityIds(processInstanceId));
byte[] buffer = new byte[is.available()];
is.read(buffer);
File imageFile = new File("D:/diagram-" + processInstanceId + ".png");
FileOutputStream fileOutputStream = new FileOutputStream(imageFile);
fileOutputStream.write(buffer);
fileOutputStream.close();
}
assertNotNull(processInstance.getProcessInstanceId());
}
You can need this dependency:
<dependency>
<groupId>org.activiti</groupId>
<artifactId>activiti-image-generator</artifactId>
<version>5.16.1</version>
</dependency>
Regards.