/** * @since 7.2 */ @Override public List<DocumentRoute> getRunningWorkflowInstancesLaunchedByCurrentUser(CoreSession session, String worflowModelName) { final String query = String.format( "SELECT * FROM %s WHERE docri:initiator = '%s' AND ecm:currentLifeCycleState = '%s'", DocumentRoutingConstants.DOCUMENT_ROUTE_DOCUMENT_TYPE, session.getPrincipal().getName(), DocumentRouteElement.ElementLifeCycleState.running); DocumentModelList documentModelList = session.query(query); List<DocumentRoute> result = new ArrayList<>(); for (DocumentModel documentModel : documentModelList) { final GraphRoute graphRoute = documentModel.getAdapter(GraphRoute.class); if (StringUtils.isNotBlank(worflowModelName)) { final String modelId = graphRoute.getModelId(); if (StringUtils.isNotBlank(modelId)) { DocumentRoute model = session.getDocument(new IdRef(modelId)).getAdapter(DocumentRoute.class); if (worflowModelName.equals(model.getName())) { result.add(graphRoute); } } } else { result.add(graphRoute); } } return result; }
@Override public void cancel(CoreSession session, DocumentRouteElement element) { GraphRoute graph = element instanceof GraphRoute ? (GraphRoute) element : null; Map<String, Serializable> eventProperties = new HashMap<>(); if (graph != null) { eventProperties.put("modelId", graph.getModelId()); eventProperties.put("modelName", graph.getModelName()); eventProperties.put(RoutingAuditHelper.WORKFLOW_VARIABLES, (Serializable) graph.getVariables()); eventProperties.put(RoutingAuditHelper.WORKFLOW_INITATIOR, graph.getInitiator()); // Get the list of pending node List<String> pendingNodeNames = new ArrayList<>(); for (GraphNode suspendedNode : graph.getSuspendedNodes()) { pendingNodeNames.add(suspendedNode.getId()); } eventProperties.put("pendingNodes", (Serializable) pendingNodeNames); } EventFirer.fireEvent(session, element, eventProperties, DocumentRoutingConstants.Events.beforeWorkflowCanceled.name()); super.cancel(session, element); if (graph == null) { return; } // also cancel tasks // also cancel sub-workflows for (GraphNode node : graph.getNodes()) { node.cancelTasks(); node.cancelSubRoute(); } }
eventProperties.put("taskName", node.getDocument().getTitle()); eventProperties.put("actors", actors); eventProperties.put("modelId", graph.getModelId()); eventProperties.put("modelName", graph.getModelName()); eventProperties.put(RoutingAuditHelper.WORKFLOW_INITATIOR, graph.getInitiator());
eventProperties.put("taskName", task.getName()); eventProperties.put("delegatedActors", (Serializable) delegatedActors); eventProperties.put("modelId", routeInstance.getModelId()); eventProperties.put("modelName", routeInstance.getModelName()); eventProperties.put(RoutingAuditHelper.WORKFLOW_INITATIOR, routeInstance.getInitiator());
eventProperties.put("taskName", task.getName()); eventProperties.put("actors", (Serializable) actors); eventProperties.put("modelId", routeInstance.getModelId()); eventProperties.put("modelName", routeInstance.getModelName()); eventProperties.put(RoutingAuditHelper.WORKFLOW_INITATIOR, routeInstance.getInitiator());