@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 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(); }
@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; }