@Override protected BaseElement convertXMLToElement(XMLStreamReader xtr, BpmnModel model) throws Exception { SequenceFlow sequenceFlow = new SequenceFlow(); BpmnXMLUtil.addXMLLocation(sequenceFlow, xtr); sequenceFlow.setSourceRef(xtr.getAttributeValue(null, ATTRIBUTE_FLOW_SOURCE_REF)); sequenceFlow.setTargetRef(xtr.getAttributeValue(null, ATTRIBUTE_FLOW_TARGET_REF)); sequenceFlow.setName(xtr.getAttributeValue(null, ATTRIBUTE_NAME)); sequenceFlow.setSkipExpression(xtr.getAttributeValue(null, ATTRIBUTE_FLOW_SKIP_EXPRESSION)); parseChildElements(getXMLElementName(), sequenceFlow, model, xtr); return sequenceFlow; }
@Override protected FlowElement convertJsonToElement(JsonNode elementNode, JsonNode modelNode, Map<String, JsonNode> shapeMap) { SequenceFlow flow = new SequenceFlow();
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; }
protected SequenceFlow createSequenceFlow(String from, String to) { SequenceFlow flow = new SequenceFlow(); flow.setSourceRef(from); flow.setTargetRef(to); return flow; }
@Override protected FlowElement convertJsonToElement(JsonNode elementNode, JsonNode modelNode, Map<String, JsonNode> shapeMap) { SequenceFlow flow = new SequenceFlow();
@Override protected BaseElement convertXMLToElement(XMLStreamReader xtr, BpmnModel model) throws Exception { SequenceFlow sequenceFlow = new SequenceFlow(); BpmnXMLUtil.addXMLLocation(sequenceFlow, xtr); sequenceFlow.setSourceRef(xtr.getAttributeValue(null, ATTRIBUTE_FLOW_SOURCE_REF)); sequenceFlow.setTargetRef(xtr.getAttributeValue(null, ATTRIBUTE_FLOW_TARGET_REF)); sequenceFlow.setName(xtr.getAttributeValue(null, ATTRIBUTE_NAME)); sequenceFlow.setSkipExpression(xtr.getAttributeValue(null, ATTRIBUTE_FLOW_SKIP_EXPRESSION)); parseChildElements(getXMLElementName(), sequenceFlow, model, xtr); return sequenceFlow; }
@Override protected BaseElement convertXMLToElement(XMLStreamReader xtr) throws Exception { SequenceFlow sequenceFlow = new SequenceFlow(); BpmnXMLUtil.addXMLLocation(sequenceFlow, xtr); sequenceFlow.setSourceRef(xtr.getAttributeValue(null, ATTRIBUTE_FLOW_SOURCE_REF)); sequenceFlow.setTargetRef(xtr.getAttributeValue(null, ATTRIBUTE_FLOW_TARGET_REF)); sequenceFlow.setName(xtr.getAttributeValue(null, ATTRIBUTE_NAME)); parseChildElements(getXMLElementName(), sequenceFlow, xtr); return sequenceFlow; }
public static SequenceFlow createSequenceFlow(WorkflowDefinitionConversion conversion, FlowNode source, FlowNode target, ActivitiListener... executionListeners) { SequenceFlow sequenceFlow = new SequenceFlow(); sequenceFlow.setId(conversion.getUniqueNumberedId(ConversionConstants.DEFAULT_SEQUENCEFLOW_PREFIX)); sequenceFlow.setSourceRef(source.getId()); sequenceFlow.setTargetRef(target.getId()); if (executionListeners != null && executionListeners.length > 0) { List<ActivitiListener> listeners = new ArrayList<ActivitiListener>(); for (ActivitiListener listener : executionListeners) { listeners.add(listener); } sequenceFlow.setExecutionListeners(listeners); } return sequenceFlow; }
/** * 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; }
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; }
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); } } }
process.addFlowElement(element); process.addFlowElement(new SequenceFlow("start", "script")); process.addFlowElement(new SequenceFlow("script", "end")); bpmnModel.addProcess(process); String activitiJobXml = getActivitiXmlFromBpmnModel(bpmnModel);
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(new SequenceFlow("start", "script1")); process.addFlowElement(new SequenceFlow("script1", "script2")); process.addFlowElement(new SequenceFlow("script2", "end"));
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); 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 }