activeProcess.addFlowElement(subProcess);
public BpmnModel createTwoTasksTestProcess() { BpmnModel model = new BpmnModel(); org.activiti.bpmn.model.Process process = new org.activiti.bpmn.model.Process(); model.addProcess(process); process.setId("twoTasksProcess"); process.setName("The two tasks process"); StartEvent startEvent = new StartEvent(); startEvent.setId("start"); process.addFlowElement(startEvent); UserTask userTask = new UserTask(); userTask.setName("The First Task"); userTask.setId("task1"); userTask.setAssignee("kermit"); process.addFlowElement(userTask); UserTask userTask2 = new UserTask(); userTask2.setName("The Second Task"); userTask2.setId("task2"); userTask2.setAssignee("kermit"); process.addFlowElement(userTask2); EndEvent endEvent = new EndEvent(); endEvent.setId("theEnd"); process.addFlowElement(endEvent); process.addFlowElement(new SequenceFlow("start", "task1")); process.addFlowElement(new SequenceFlow("start", "task2")); process.addFlowElement(new SequenceFlow("task1", "theEnd")); process.addFlowElement(new SequenceFlow("task2", "theEnd")); return model; }
/** * Since the 'one task process' is used everywhere the actual process content doesn't matter, instead of copying around the BPMN 2.0 xml one could use this method which gives a {@link BpmnModel} * version of the same process back. */ public BpmnModel createOneTaskTestProcess() { BpmnModel model = new BpmnModel(); org.activiti.bpmn.model.Process process = new org.activiti.bpmn.model.Process(); model.addProcess(process); process.setId("oneTaskProcess"); process.setName("The one task process"); StartEvent startEvent = new StartEvent(); startEvent.setId("start"); process.addFlowElement(startEvent); UserTask userTask = new UserTask(); userTask.setName("The Task"); userTask.setId("theTask"); userTask.setAssignee("kermit"); process.addFlowElement(userTask); EndEvent endEvent = new EndEvent(); endEvent.setId("theEnd"); process.addFlowElement(endEvent); process.addFlowElement(new SequenceFlow("start", "theTask")); process.addFlowElement(new SequenceFlow("theTask", "theEnd")); return model; }
activeProcess.addFlowElement(currentFlowElement);
((Process) parentElement).addFlowElement(flowElement); } else if (parentElement instanceof SubProcess) { ((SubProcess) parentElement).addFlowElement(flowElement); Lane lane = (Lane) parentElement; lane.getFlowReferences().add(flowElement.getId()); lane.getParentProcess().addFlowElement(flowElement);
activeProcess.addFlowElement(subProcess);
activeProcess.addFlowElement(subProcess);
protected ExclusiveGateway createExclusiveGateway(WorkflowDefinitionConversion conversion) { ExclusiveGateway exclusiveGateway = new ExclusiveGateway(); exclusiveGateway.setId(conversion.getUniqueNumberedId(EXLCUSIVE_GATEWAY_PREFIX)); conversion.getProcess().addFlowElement(exclusiveGateway); return exclusiveGateway; }
protected ParallelGateway createParallelGateway(WorkflowDefinitionConversion conversion) { ParallelGateway parallelGateway = new ParallelGateway(); parallelGateway.setId(conversion.getUniqueNumberedId(PARALLEL_GATEWAY_PREFIX)); conversion.getProcess().addFlowElement(parallelGateway); return parallelGateway; }
@RequiresPermissions("flowdefine") @RequestMapping("/admin/flowdefine/view_add") public String add(ModelMap model) { BpmnModel bpmnModel = new BpmnModel(); Process process = new Process(); process.setName("流程名称"); bpmnModel.addProcess(process); process.addFlowElement(createStartEvent()); process.addFlowElement(createEndEvent()); process.addFlowElement(createSequenceFlow("start", "end")); process.setId("my-process"); BpmnXMLConverter bpmnXMLConverter = new BpmnXMLConverter(); byte[] convertToXML = bpmnXMLConverter.convertToXML(bpmnModel); String bytes = new String(convertToXML); model.addAttribute("content", bytes); return "/admin/flowdefine/add"; }
public BpmnModel createTwoTasksTestProcess() { BpmnModel model = new BpmnModel(); org.activiti.bpmn.model.Process process = new org.activiti.bpmn.model.Process(); model.addProcess(process); process.setId("twoTasksProcess"); process.setName("The two tasks process"); StartEvent startEvent = new StartEvent(); startEvent.setId("start"); process.addFlowElement(startEvent); UserTask userTask = new UserTask(); userTask.setName("The First Task"); userTask.setId("task1"); userTask.setAssignee("kermit"); process.addFlowElement(userTask); UserTask userTask2 = new UserTask(); userTask2.setName("The Second Task"); userTask2.setId("task2"); userTask2.setAssignee("kermit"); process.addFlowElement(userTask2); EndEvent endEvent = new EndEvent(); endEvent.setId("theEnd"); process.addFlowElement(endEvent); process.addFlowElement(new SequenceFlow("start", "task1")); process.addFlowElement(new SequenceFlow("start", "task2")); process.addFlowElement(new SequenceFlow("task1", "theEnd")); process.addFlowElement(new SequenceFlow("task2", "theEnd")); return model; }
/** * Since the 'one task process' is used everywhere the actual process content doesn't matter, instead of copying around the BPMN 2.0 xml one could use this method which gives a {@link BpmnModel} * version of the same process back. */ public BpmnModel createOneTaskTestProcess() { BpmnModel model = new BpmnModel(); org.activiti.bpmn.model.Process process = new org.activiti.bpmn.model.Process(); model.addProcess(process); process.setId("oneTaskProcess"); process.setName("The one task process"); StartEvent startEvent = new StartEvent(); startEvent.setId("start"); process.addFlowElement(startEvent); UserTask userTask = new UserTask(); userTask.setName("The Task"); userTask.setId("theTask"); userTask.setAssignee("kermit"); process.addFlowElement(userTask); EndEvent endEvent = new EndEvent(); endEvent.setId("theEnd"); process.addFlowElement(endEvent); process.addFlowElement(new SequenceFlow("start", "theTask")); process.addFlowElement(new SequenceFlow("theTask", "theEnd")); return model; }
/** * Add a sequence-flow to the current process from source to target. * Sequence-flow name is set to a user-friendly name, containing an * incrementing number. * * @param conversion * @param sourceActivityId * @param targetActivityId * @param condition */ protected SequenceFlow addSequenceFlow(WorkflowDefinitionConversion conversion, String sourceActivityId, String targetActivityId, String condition) { SequenceFlow sequenceFlow = new SequenceFlow(); sequenceFlow.setId(conversion.getUniqueNumberedId(getSequenceFlowPrefix())); sequenceFlow.setSourceRef(sourceActivityId); sequenceFlow.setTargetRef(targetActivityId); if (StringUtils.isNotEmpty(condition)) { sequenceFlow.setConditionExpression(condition); } conversion.getProcess().addFlowElement(sequenceFlow); return sequenceFlow; }
protected void addFlowElement(WorkflowDefinitionConversion conversion, FlowElement flowElement, boolean addSequenceFlowToLastActivity) { if (conversion.isSequenceflowGenerationEnabled() && addSequenceFlowToLastActivity) { addSequenceFlow(conversion, conversion.getLastActivityId(), flowElement.getId()); } conversion.getProcess().addFlowElement(flowElement); if (conversion.isUpdateLastActivityEnabled()) { conversion.setLastActivityId(flowElement.getId()); } }
public void afterStepsConversion(WorkflowDefinitionConversion conversion) { // Add end-event to process Process process = conversion.getProcess(); EndEvent endEvent = new EndEvent(); endEvent.setId(END_EVENT_ID); process.addFlowElement(endEvent); // Sequence flow from last created activity to end SequenceFlow sequenceFlow = new SequenceFlow(); sequenceFlow.setId(conversion.getUniqueNumberedId(ConversionConstants.DEFAULT_SEQUENCEFLOW_PREFIX)); sequenceFlow.setSourceRef(conversion.getLastActivityId()); sequenceFlow.setTargetRef(END_EVENT_ID); process.addFlowElement(sequenceFlow); // To make the generated workflow compatible with some tools (eg the // Modeler, but also others), // We must add the ingoing and outgoing sequence flow to each of the flow // nodes SequenceFlowMapping sequenceFlowMapping = generateSequenceflowMappings(process); for (FlowNode flowNode : process.findFlowElementsOfType(FlowNode.class)) { List<SequenceFlow> incomingSequenceFlow = sequenceFlowMapping.getIncomingSequenceFlowMapping().get(flowNode.getId()); if (incomingSequenceFlow != null) { flowNode.setIncomingFlows(incomingSequenceFlow); } List<SequenceFlow> outgoingSequenceFlow = sequenceFlowMapping.getOutgoingSequenceFlowMapping().get(flowNode.getId()); if (outgoingSequenceFlow != null) { flowNode.setOutgoingFlows(outgoingSequenceFlow); } } }
private String getActivitiJobXml(String namespace, String jobName) { BpmnModel bpmnModel = new BpmnModel(); Process process = new Process(); process.setId(namespace + '.' + jobName); { StartEvent element = new StartEvent(); element.setId("start"); process.addFlowElement(element); } { EndEvent element = new EndEvent(); element.setId("end"); process.addFlowElement(element); } process.addFlowElement(new SequenceFlow("start", "end")); bpmnModel.addProcess(process); return getActivitiXmlFromBpmnModel(bpmnModel); }
process.addFlowElement(element); element.setScript("// do nothing"); element.setAsynchronous(true); process.addFlowElement(element); process.addFlowElement(element); process.addFlowElement(new SequenceFlow("start", "script")); process.addFlowElement(new SequenceFlow("script", "end")); bpmnModel.addProcess(process); String activitiJobXml = getActivitiXmlFromBpmnModel(bpmnModel);
process.addFlowElement(element); element.setScriptFormat("js"); element.setScript("// do nothing"); process.addFlowElement(element); process.addFlowElement(element); process.addFlowElement(new SequenceFlow("start", "script")); process.addFlowElement(new SequenceFlow("script", "end")); bpmnModel.addProcess(process); String activitiJobXml = getActivitiXmlFromBpmnModel(bpmnModel);
/** * Asserts that create job definition proceeds without exceptions when first task does not support async (ex. events) * * @throws Exception */ @Test public void testCreateJobDefinitionAssertSuccessWhenFirstTaskNotAsyncable() throws Exception { String namespace = NAMESPACE; String jobName = JOB_NAME; BpmnModel bpmnModel = new BpmnModel(); Process process = new Process(); process.setId(namespace + '.' + jobName); { StartEvent element = new StartEvent(); element.setId("start"); process.addFlowElement(element); } { EndEvent element = new EndEvent(); element.setId("end"); process.addFlowElement(element); } process.addFlowElement(new SequenceFlow("start", "end")); bpmnModel.addProcess(process); String activitiJobXml = getActivitiXmlFromBpmnModel(bpmnModel); namespaceDaoTestHelper.createNamespaceEntity(namespace); jobDefinitionService.createJobDefinition(new JobDefinitionCreateRequest(namespace, jobName, null, activitiJobXml, null, null), true); // Assert no exceptions }
protected void initializeProcess(WorkflowDefinitionConversion conversion) { WorkflowDefinition workflowDefinition = conversion.getWorkflowDefinition(); // Create new process Process process = conversion.getProcess(); process.setId(generateProcessId(workflowDefinition)); process.setName(workflowDefinition.getName()); process.setDocumentation(workflowDefinition.getDescription()); if (workflowDefinition.getCategory() != null) { conversion.getBpmnModel().setTargetNamespace(workflowDefinition.getCategory()); } conversion.setProcess(process); // Add start-event StartEvent startEvent = new StartEvent(); startEvent.setId(START_EVENT_ID); if(workflowDefinition.getStartFormDefinition() != null && workflowDefinition.getStartFormDefinition().getFormKey() != null) { startEvent.setFormKey(workflowDefinition.getStartFormDefinition().getFormKey()); } process.addFlowElement(startEvent); conversion.setLastActivityId(startEvent.getId()); }