/** * @throws ApplicationException */ public String startWorkflow(String name, Integer version, String correlationId, Map<String, Object> input, String externalInputPayloadStoragePath) { return startWorkflow(name, version, correlationId, input, externalInputPayloadStoragePath, null); }
/** * @throws ApplicationException */ public String startWorkflow(String name, Integer version, String correlationId, Map<String, Object> input, String externalInputPayloadStoragePath, String event) { return startWorkflow( name, version, input, externalInputPayloadStoragePath, correlationId, null, null, event ); }
/** * @throws ApplicationException */ public String startWorkflow( WorkflowDef workflowDefinition, Map<String, Object> workflowInput, String externalInputPayloadStoragePath, String correlationId, String event, Map<String, String> taskToDomain ) { return startWorkflow( workflowDefinition, workflowInput, externalInputPayloadStoragePath, correlationId, null, null, event, taskToDomain ); }
@Override String startOrLoadWorkflowExecution(String snapshotResourceName, String workflowName, int version, String correlationId, Map<String, Object> input, String event, Map<String, String> taskToDomain) { return workflowExecutor.startWorkflow(workflowName, version, correlationId, input, null, event, taskToDomain); } }
return workflowExecutor.startWorkflow( name, version, ); } else { return workflowExecutor.startWorkflow( workflowDef, input,
@SuppressWarnings("unchecked") @Override public void start(Workflow workflow, Task task, WorkflowExecutor provider) { Map<String, Object> input = task.getInputData(); String name = input.get("subWorkflowName").toString(); int version = (int) input.get("subWorkflowVersion"); Map<String, Object> wfInput = (Map<String, Object>) input.get("workflowInput"); if (wfInput == null || wfInput.isEmpty()) { wfInput = input; } String correlationId = workflow.getCorrelationId(); try { String subWorkflowId = provider.startWorkflow(name, version, wfInput, null, correlationId, workflow.getWorkflowId(), task.getTaskId(), null, workflow.getTaskToDomain()); task.getOutputData().put(SUB_WORKFLOW_ID, subWorkflowId); task.getInputData().put(SUB_WORKFLOW_ID, subWorkflowId); task.setStatus(Status.IN_PROGRESS); } catch (Exception e) { task.setStatus(Status.FAILED); task.setReasonForIncompletion(e.getMessage()); logger.error(e.getMessage(), e); } }
private Map<String, Object> startWorkflow(Action action, Object payload, String event, String messageId) { StartWorkflow params = action.getStart_workflow(); Map<String, Object> output = new HashMap<>(); try { Map<String, Object> inputParams = params.getInput(); Map<String, Object> workflowInput = parametersUtils.replace(inputParams, payload); workflowInput.put("conductor.event.messageId", messageId); workflowInput.put("conductor.event.name", event); String id = executor.startWorkflow(params.getName(), params.getVersion(), params.getCorrelationId(), workflowInput, null, event, params.getTaskToDomain()); output.put("workflowId", id); } catch (RuntimeException e) { logger.error("Error starting workflow: {}, version: {}, for event: {} for message: {}", params.getName(), params.getVersion(), event, messageId, e); output.put("error", e.getMessage()); throw e; } return output; } }
/** * Start a new workflow. Returns the ID of the workflow instance that can be later used for tracking. * * @param name Name of the workflow you want to start. * @param version Version of the workflow you want to start. * @param correlationId CorrelationID of the workflow you want to start. * @param input Input to the workflow you want to start. * @return the id of the workflow instance that can be use for tracking. */ @Service public String startWorkflow(String name, Integer version, String correlationId, Map<String, Object> input) { WorkflowDef workflowDef = metadataService.getWorkflowDef( name, version ); if (workflowDef == null) { throw new ApplicationException( ApplicationException.Code.NOT_FOUND, String.format( "No such workflow found by name: %s, version: %d", name, version ) ); } return workflowExecutor.startWorkflow( workflowDef.getName(), workflowDef.getVersion(), correlationId, input, null ); }
@Test public void testStartWorkflowParam() { WorkflowDef workflowDef = new WorkflowDef(); workflowDef.setName("test"); workflowDef.setVersion(1); Map<String, Object> input = new HashMap<>(); input.put("1", "abc"); String workflowID = "w112"; when(mockMetadata.getWorkflowDef(anyString(), anyInt())).thenReturn(workflowDef); when(mockWorkflowExecutor.startWorkflow(anyString(), anyInt(), anyString(), anyMapOf(String.class, Object.class), any(String.class))).thenReturn(workflowID); assertEquals("w112", workflowService.startWorkflow("test", 1, "c123", input)); }
@Test public void testStartWorkflow() { WorkflowDef workflowDef = new WorkflowDef(); workflowDef.setName("test"); workflowDef.setVersion(1); StartWorkflowRequest startWorkflowRequest = new StartWorkflowRequest(); startWorkflowRequest.setName("w123"); Map<String, Object> input = new HashMap<>(); input.put("1", "abc"); startWorkflowRequest.setInput(input); String workflowID = "w112"; when(mockMetadata.getWorkflowDef(anyString(), anyInt())).thenReturn(workflowDef); when(mockWorkflowExecutor.startWorkflow(anyString(), anyInt(), anyString(), anyMapOf(String.class, Object.class), any(String.class), any(String.class), anyMapOf(String.class, String.class))).thenReturn(workflowID); assertEquals("w112", workflowService.startWorkflow(startWorkflowRequest)); }
@SuppressWarnings("unchecked") @Test public void testStartWorkflow() throws Exception { StartWorkflow startWorkflow = new StartWorkflow(); startWorkflow.setName("testWorkflow"); startWorkflow.getInput().put("testInput", "${testId}"); Map<String, String> taskToDomain = new HashMap<>(); taskToDomain.put("*", "dev"); startWorkflow.setTaskToDomain(taskToDomain); Action action = new Action(); action.setAction(Type.start_workflow); action.setStart_workflow(startWorkflow); Object payload = new ObjectMapper().readValue("{\"testId\":\"test_1\"}", Object.class); WorkflowDef workflowDef = new WorkflowDef(); workflowDef.setName("testWorkflow"); workflowDef.setVersion(1); when(workflowExecutor.startWorkflow(eq("testWorkflow"), eq(null), any(), any(), any(), eq("testEvent"), anyMap())) .thenReturn("workflow_1"); Map<String, Object> output = actionProcessor.execute(action, payload, "testEvent", "testMessage"); assertNotNull(output); assertEquals("workflow_1", output.get("workflowId")); ArgumentCaptor<Map> argumentCaptor = ArgumentCaptor.forClass(Map.class); ArgumentCaptor<Map> captor = ArgumentCaptor.forClass(Map.class); verify(workflowExecutor).startWorkflow(eq("testWorkflow"), eq(null), any(), argumentCaptor.capture(), any(), eq("testEvent"), captor.capture()); assertEquals("test_1", argumentCaptor.getValue().get("testInput")); assertEquals("testMessage", argumentCaptor.getValue().get("conductor.event.messageId")); assertEquals("testEvent", argumentCaptor.getValue().get("conductor.event.name")); assertEquals(taskToDomain, captor.getValue()); }
Map<String, String> taskToDomain ) { return startWorkflow( name, version, String event ) { return startWorkflow( name, version, WorkflowDef workflowDefinition = metadataMapperService.lookupForWorkflowDefinition(name, version); return startWorkflow( workflowDefinition, workflowInput,
); String failureWFId = startWorkflow( latestFailureWorkflow, input,
started.set(true); return id; }).when(workflowExecutor).startWorkflow(startWorkflowAction.getStart_workflow().getName(), startWorkflowAction.getStart_workflow().getVersion(), startWorkflowAction.getStart_workflow().getCorrelationId(), startWorkflowAction.getStart_workflow().getInput(), null, event, null);
started.set(true); return id; }).when(workflowExecutor).startWorkflow(startWorkflowAction.getStart_workflow().getName(), startWorkflowAction.getStart_workflow().getVersion(), startWorkflowAction.getStart_workflow().getCorrelationId(), startWorkflowAction.getStart_workflow().getInput(), null, event, taskToDomain);
String workflowId = workflowExecutor.startWorkflow(LINEAR_WORKFLOW_T1_T2, 1, correlationId, null, workflowInputPath, null, null); assertNotNull(workflowId);
String workflowId = workflowExecutor.startWorkflow(LINEAR_WORKFLOW_T1_T2, 1, correlationId, null, workflowInputPath, null, null); assertNotNull(workflowId);
/** * @throws ApplicationException */ public String startWorkflow(String name, Integer version, String correlationId, Map<String, Object> input, String externalInputPayloadStoragePath) { return startWorkflow(name, version, correlationId, input, externalInputPayloadStoragePath, null); }
/** * @throws ApplicationException */ public String startWorkflow(String name, Integer version, String correlationId, Map<String, Object> input, String externalInputPayloadStoragePath, String event) { return startWorkflow( name, version, input, externalInputPayloadStoragePath, correlationId, null, null, event ); }
/** * Start a new workflow. Returns the ID of the workflow instance that can be later used for tracking. * * @param name Name of the workflow you want to start. * @param version Version of the workflow you want to start. * @param correlationId CorrelationID of the workflow you want to start. * @param input Input to the workflow you want to start. * @return the id of the workflow instance that can be use for tracking. */ @Service public String startWorkflow(String name, Integer version, String correlationId, Map<String, Object> input) { WorkflowDef workflowDef = metadataService.getWorkflowDef( name, version ); if (workflowDef == null) { throw new ApplicationException( ApplicationException.Code.NOT_FOUND, String.format( "No such workflow found by name: %s, version: %d", name, version ) ); } return workflowExecutor.startWorkflow( workflowDef.getName(), workflowDef.getVersion(), correlationId, input, null ); }