@OperationMethod() public DocumentModel run(DocumentModel document) throws Exception { List<String> docIds = new ArrayList<String>(1); docIds.add(document.getId()); routingService.createNewInstance(workflowName, docIds, documentManager, true); return document; }
protected void startNewInstance(List<String> ids) { Map<String, Serializable> vars = new HashMap<String, Serializable>(); if (variables != null) { for (Entry<String, String> entry : variables.entrySet()) { vars.put(entry.getKey(), entry.getValue()); } } vars.put(DocumentRoutingConstants._MAP_VAR_FORMAT_JSON, Boolean.TRUE); String workflowId = documentRoutingService.createNewInstance(id, ids, vars, session, Boolean.TRUE.equals(start)); ctx.put("WorkflowId", workflowId); // to be consistent with all the other workflow variablesin the context // @since 5.7.2 ctx.put("workflowInstanceId", workflowId); } }
@POST public Response createWorkflowInstance(WorkflowRequest workflowRequest) { final String workflowInstanceId = documentRoutingService.createNewInstance( workflowRequest.getWorkflowModelName(), workflowRequest.getAttachedDocumentIds(), workflowRequest.getVariables(), ctx.getCoreSession(), true); DocumentModel workflowInstance = getContext().getCoreSession().getDocument(new IdRef(workflowInstanceId)); DocumentRoute route = workflowInstance.getAdapter(DocumentRoute.class); return Response.ok(route).status(Status.CREATED).build(); }
@POST public Response doPost(WorkflowRequest routingRequest) { DocumentModel doc = getTarget().getAdapter(DocumentModel.class); final String workflowInstanceId = Framework.getService(DocumentRoutingService.class).createNewInstance( routingRequest.getWorkflowModelName(), Arrays.asList(new String[] { doc.getId() }), ctx.getCoreSession(), true); DocumentModel result = getContext().getCoreSession().getDocument(new IdRef(workflowInstanceId)); DocumentRoute route = result.getAdapter(DocumentRoute.class); return Response.ok(route).status(Status.CREATED).build(); }
public String startWorkflow(DocumentModel workflow, String msgKey) { DocumentModel currentDoc = navigationContext.getCurrentDocument(); List<String> currentDocIds = new ArrayList<String>(1); currentDocIds.add(currentDoc.getId()); getDocumentRoutingService().createNewInstance(workflow.getName(), currentDocIds, documentManager, true); /* Events for Observers (and listeners?) */ Events.instance().raiseEvent(EventNames.DOCUMENT_CHILDREN_CHANGED, workflow); FacesMessages.instance().addFromResourceBundle(msgKey); webActions.resetTabList(); return null; }
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; }
reinitLifecycle(relatedDocIds, session); routingService.createNewInstance(workflowId, relatedDocIds, session, true); for (String string : relatedDocIds) { log.debug("Starting workflow for " + string);
public String startRoute() throws ClientException { DocumentModel currentDocument = navigationContext.getCurrentDocument(); DocumentRoute currentRoute = currentDocument.getAdapter(DocumentRoute.class); if (currentRoute == null) { log.warn("Current document is not a workflow model"); facesMessages.add( StatusMessage.Severity.ERROR, resourcesAccessor.getMessages().get( "label.document.routing.no.workflow")); return null; } getDocumentRoutingService().createNewInstance( currentDocument.getName(), currentRoute.getAttachedDocuments(), documentManager, true); Events.instance().raiseEvent(EventNames.DOCUMENT_CHILDREN_CHANGED, currentDocument); Events.instance().raiseEvent(TaskEventNames.WORKFLOW_NEW_STARTED); webActions.resetTabList(); return null; }
@Override public DocumentRoute startSubRoute() throws DocumentRouteException { String subRouteModelId = getSubRouteModelId(); // create the instance without starting it DocumentRoutingService service = Framework.getService(DocumentRoutingService.class); List<String> docs = graph.getAttachedDocuments(); String subRouteInstanceId = service.createNewInstance(subRouteModelId, docs, getSession(), false); // set info about parent in subroute DocumentModel subRouteInstance = getSession().getDocument(new IdRef(subRouteInstanceId)); subRouteInstance.setPropertyValue(GraphRoute.PROP_PARENT_ROUTE, getDocument().getParentRef().toString()); subRouteInstance.setPropertyValue(GraphRoute.PROP_PARENT_NODE, getDocument().getName()); subRouteInstance = getSession().saveDocument(subRouteInstance); // set info about subroute in parent document.setPropertyValue(PROP_SUB_ROUTE_INSTANCE_ID, subRouteInstanceId); saveDocument(); // start the sub-route Map<String, Serializable> map = getSubRouteInitialVariables(); service.startInstance(subRouteInstanceId, docs, map, getSession()); // return the sub-route // subRouteInstance.refresh(); DocumentRoute subRoute = subRouteInstance.getAdapter(DocumentRoute.class); return subRoute; }