01-11-2013 06:00 AM
ProcessDiagramGenerator.generateDiagram(processDefinitionEntity, "png", highLightedActivities, highLightedFlows)
historyService.createHistoricActivityInstanceQuery().processInstanceId(processInstanceId).finished().list();
-> for the current activities , I use : runtimeService.getActiveActivityIds(processInstanceId);
-> but I have no idea on how to find the flows that I should get highlighted (I have several flows that end up to the same task so it is not absolutely obvious from the highlighted tasks which path led to them…)01-11-2013 07:41 AM
01-16-2013 05:58 AM
private List<String> historicActivityInstanceList = new ArrayList<String>();
private List<String> highLightedFlows = new ArrayList<String>();
…
List<String> highLightedFlows = getHighLightedFlows(processDefinition, processInstanceId);
…
private List<String> getHighLightedFlows(ProcessDefinitionEntity processDefinition,
String processInstanceId) {
List<HistoricActivityInstance> historicActivityInstances = historyService.
createHistoricActivityInstanceQuery().processInstanceId(processInstanceId).
orderByHistoricActivityInstanceStartTime().asc().list();
for (HistoricActivityInstance hai : historicActivityInstances) {
historicActivityInstanceList.add(hai.getActivityId());
}
// add current activities to list
List<String> highLightedActivities = runtimeService.getActiveActivityIds(processInstanceId);
historicActivityInstanceList.addAll(highLightedActivities);
// activities and their sequence-flows
getHighLightedFlows(processDefinition.getActivities());
return highLightedFlows;
}
private void getHighLightedFlows (List<ActivityImpl> activityList) {
for (ActivityImpl activity : activityList) {
if (activity.getProperty("type").equals("subProcess")) {
// get flows for the subProcess
getHighLightedFlows(activity.getActivities());
}
if (historicActivityInstanceList.contains(activity.getId())) {
List<PvmTransition> pvmTransitionList = activity.getOutgoingTransitions();
for (PvmTransition pvmTransition: pvmTransitionList) {
String destinationFlowId = pvmTransition.getDestination().getId();
if (historicActivityInstanceList.contains(destinationFlowId)) {
highLightedFlows.add(pvmTransition.getId());
}
}
}
}
}
02-01-2013 03:44 AM
02-01-2013 04:33 AM
to register each flow taken…Do you want to register and then store it on runtime? Or do you want to create additional table to store registered sequence flows?
02-01-2013 05:16 AM
01-13-2014 10:08 PM
01-14-2014 02:46 AM
02-25-2016 06:20 PM
01-14-2014 10:50 PM
Tags
Find what you came for
We want to make your experience in Hyland Connect as valuable as possible, so we put together some helpful links.