@Override public void run() { DocumentModel instance = session.getDocument(new IdRef(routeInstanceId)); DocumentRoute route = instance.getAdapter(DocumentRoute.class); if (docIds != null) { route.setAttachedDocuments(docIds); route.save(session); } fireEvent(DocumentRoutingConstants.Events.beforeRouteStart.name(), new HashMap<>(), route, session); DocumentRoutingEngineService routingEngine = Framework.getService(DocumentRoutingEngineService.class); routingEngine.start(route, map, session); fireEventAfterWorkflowStarted(route, session); }
@Override public DocumentRoute saveRouteAsNewModel(DocumentRoute instance, CoreSession session) { DocumentModel instanceModel = instance.getDocument(); DocumentModel parent = persister.getParentFolderForNewModel(session, instanceModel); String newName = persister.getNewModelName(instanceModel); DocumentModel newmodel = persister.saveDocumentRouteInstanceAsNewModel(instanceModel, parent, newName, session); DocumentRoute newRoute = newmodel.getAdapter(DocumentRoute.class); if (!newRoute.isDraft()) { newRoute.followTransition(DocumentRouteElement.ElementLifeCycleTransistion.toDraft, session, false); } newRoute.getDocument().setPropertyValue("dc:title", newName); newRoute.setAttachedDocuments(new ArrayList<>()); newRoute.save(session); return newRoute; }
public String startRouteRelatedToCurrentDocument() throws ClientException { DocumentRoute route = getRelatedRoute(); // check relatedRoutedoc id if (!StringUtils.isEmpty(relatedRouteModelDocumentId)) { DocumentModel model = documentManager.getDocument(new IdRef( relatedRouteModelDocumentId)); route = model.getAdapter(DocumentRoute.class); } if (route == null) { facesMessages.add( StatusMessage.Severity.WARN, resourcesAccessor.getMessages().get( "feedback.casemanagement.document.route.no.valid.route")); return null; } List<String> documentIds = new ArrayList<String>(); documentIds.add(navigationContext.getCurrentDocument().getId()); route.setAttachedDocuments(documentIds); getDocumentRoutingService().createNewInstance( route.getDocument().getName(), documentIds, documentManager, true); Events.instance().raiseEvent(TaskEventNames.WORKFLOW_NEW_STARTED); webActions.resetTabList(); return null; }
@Override public void run() { String routeDocId = getRouteModelDocIdWithId(session, routeModelId); DocumentModel model = session.getDocument(new IdRef(routeDocId)); DocumentModel instance = persister.createDocumentRouteInstanceFromDocumentRouteModel(model, session); route = instance.getAdapter(DocumentRoute.class); route.setAttachedDocuments(docIds); route.save(session); Map<String, Serializable> props = new HashMap<>(); props.put(DocumentRoutingConstants.INITIATOR_EVENT_CONTEXT_KEY, initiator); fireEvent(DocumentRoutingConstants.Events.beforeRouteReady.name(), props); route.setReady(session); fireEvent(DocumentRoutingConstants.Events.afterRouteReady.name(), props); route.save(session); if (startInstance) { fireEvent(DocumentRoutingConstants.Events.beforeRouteStart.name(), new HashMap<>()); DocumentRoutingEngineService routingEngine = Framework.getService( DocumentRoutingEngineService.class); routingEngine.start(route, map, session); fireEventAfterWorkflowStarted(route, session); } res[0] = instance.getId(); }