public void parseChildElement(XMLStreamReader xtr, BaseElement parentElement, BpmnModel model) throws Exception { String resourceElement = XMLStreamReaderUtil.moveDown(xtr); if (StringUtils.isNotEmpty(resourceElement) && ELEMENT_RESOURCE_ASSIGNMENT.equals(resourceElement)) { String expression = XMLStreamReaderUtil.moveDown(xtr); if (StringUtils.isNotEmpty(expression) && ELEMENT_FORMAL_EXPRESSION.equals(expression)) { ((UserTask) parentElement).setAssignee(xtr.getElementText()); } } } }
JsonNode emailNode = assigneeNode.get("email"); if (idNode != null && !idNode.isNull() && StringUtils.isNotEmpty(idNode.asText())) { task.setAssignee(idNode.asText()); addExtensionElement("activiti-idm-assignee", String.valueOf(true), task); addExtensionElement("assignee-info-email", emailNode, task); task.setAssignee(emailNode.asText()); JsonNode idNode = assigneeFieldNode.get("id"); if (idNode != null && !idNode.isNull() && StringUtils.isNotEmpty(idNode.asText())) { task.setAssignee("${taskAssignmentBean.assignTaskToAssignee('" + idNode.asText() + "', execution)}"); addExtensionElement("activiti-idm-assignee-field", idNode.asText(), task); addExtensionElement("assignee-field-info-name", assigneeFieldNode.get("name"), task);
JsonNode assigneeNode = assignmentDefNode.get(PROPERTY_USERTASK_ASSIGNEE); if (assigneeNode != null && !assigneeNode.isNull()) { task.setAssignee(assigneeNode.asText()); task.setAssignee("$INITIATOR"); addExtensionElement("activiti-idm-initiator", String.valueOf(true), task);
userTask.setCategory(xtr.getAttributeValue(ACTIVITI_EXTENSIONS_NAMESPACE, ATTRIBUTE_TASK_USER_CATEGORY)); userTask.setFormKey(formKey); userTask.setAssignee(xtr.getAttributeValue(ACTIVITI_EXTENSIONS_NAMESPACE, ATTRIBUTE_TASK_USER_ASSIGNEE)); userTask.setOwner(xtr.getAttributeValue(ACTIVITI_EXTENSIONS_NAMESPACE, ATTRIBUTE_TASK_USER_OWNER)); userTask.setPriority(xtr.getAttributeValue(ACTIVITI_EXTENSIONS_NAMESPACE, ATTRIBUTE_TASK_USER_PRIORITY));
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 parseChildElement(XMLStreamReader xtr, BaseElement parentElement, BpmnModel model) throws Exception { String resourceElement = XMLStreamReaderUtil.moveDown(xtr); if (StringUtils.isNotEmpty(resourceElement) && ELEMENT_RESOURCE_ASSIGNMENT.equals(resourceElement)) { String expression = XMLStreamReaderUtil.moveDown(xtr); if (StringUtils.isNotEmpty(expression) && ELEMENT_FORMAL_EXPRESSION.equals(expression)) { ((UserTask) parentElement).setAssignee(xtr.getElementText()); } } } }
public void parseChildElement(XMLStreamReader xtr, BaseElement parentElement, BpmnModel model) throws Exception { UserTask userTask = (UserTask) parentElement; if (StringUtils.isNotEmpty(userTask.getAssignee())) { model.addProblem("No duplicate assignee and humanPerformer definition allowed", xtr); } String resourceElement = XMLStreamReaderUtil.moveDown(xtr); if (StringUtils.isNotEmpty(resourceElement) && "resourceAssignmentExpression".equals(resourceElement)) { String expression = XMLStreamReaderUtil.moveDown(xtr); if (StringUtils.isNotEmpty(expression) && "formalExpression".equals(expression)) { ((UserTask) parentElement).setAssignee(xtr.getElementText()); } } } }
JsonNode emailNode = assigneeNode.get("email"); if (idNode != null && idNode.isNull() == false && StringUtils.isNotEmpty(idNode.asText())) { task.setAssignee(idNode.asText()); addExtensionElement("activiti-idm-assignee", String.valueOf(true), task); addExtensionElement("assignee-info-email", emailNode, task); task.setAssignee(emailNode.asText()); JsonNode idNode = assigneeFieldNode.get("id"); if (idNode != null && idNode.isNull() == false && StringUtils.isNotEmpty(idNode.asText())) { task.setAssignee("${taskAssignmentBean.assignTaskToAssignee('" + idNode.asText() + "', execution)}"); addExtensionElement("activiti-idm-assignee-field", idNode.asText(), task); addExtensionElement("assignee-field-info-name", assigneeFieldNode.get("name"), task);
protected UserTask createUserTask(String id, String name, String assignee) { UserTask userTask = new UserTask(); userTask.setName(name); userTask.setId(id); userTask.setAssignee(assignee); return userTask; }
userTask.setDueDate(xtr.getAttributeValue(ACTIVITI_EXTENSIONS_NAMESPACE, ATTRIBUTE_TASK_USER_DUEDATE)); userTask.setFormKey(formKey); userTask.setAssignee(xtr.getAttributeValue(ACTIVITI_EXTENSIONS_NAMESPACE, ATTRIBUTE_TASK_USER_ASSIGNEE)); userTask.setPriority(xtr.getAttributeValue(ACTIVITI_EXTENSIONS_NAMESPACE, ATTRIBUTE_TASK_USER_PRIORITY));
JsonNode assigneeNode = assignmentDefNode.get(PROPERTY_USERTASK_ASSIGNEE); if (assigneeNode != null && assigneeNode.isNull() == false) { task.setAssignee(assigneeNode.asText()); task.setAssignee("$INITIATOR"); addExtensionElement("activiti-idm-initiator", String.valueOf(true), task);
userTask.setCategory(xtr.getAttributeValue(ACTIVITI_EXTENSIONS_NAMESPACE, ATTRIBUTE_TASK_USER_CATEGORY)); userTask.setFormKey(formKey); userTask.setAssignee(xtr.getAttributeValue(ACTIVITI_EXTENSIONS_NAMESPACE, ATTRIBUTE_TASK_USER_ASSIGNEE)); userTask.setOwner(xtr.getAttributeValue(ACTIVITI_EXTENSIONS_NAMESPACE, ATTRIBUTE_TASK_USER_OWNER)); userTask.setPriority(xtr.getAttributeValue(ACTIVITI_EXTENSIONS_NAMESPACE, ATTRIBUTE_TASK_USER_PRIORITY));
protected UserTask createGatherFeedbackUserTask(FeedbackStepDefinition feedbackStepDefinition, WorkflowDefinitionConversion conversion, Map<String, BaseElement> processElements) { UserTask gatherFeedbackUserTask = new UserTask(); gatherFeedbackUserTask.setId(conversion.getUniqueNumberedId(ConversionConstants.USER_TASK_ID_PREFIX)); gatherFeedbackUserTask.setName(getGatherFeedbackTaskName()); gatherFeedbackUserTask.setAssignee(feedbackStepDefinition.getFeedbackInitiator()); addFlowElement(conversion, gatherFeedbackUserTask); processElements.put(SELECT_PEOPLE_USER_TASK, gatherFeedbackUserTask); return gatherFeedbackUserTask; }
selectPeopleUserTask.setId(conversion.getUniqueNumberedId(ConversionConstants.USER_TASK_ID_PREFIX)); selectPeopleUserTask.setName(getSelectPeopleTaskName()); selectPeopleUserTask.setAssignee(feedbackStepDefinition.getFeedbackInitiator()); addFlowElement(conversion, selectPeopleUserTask, true); processElements.put(SELECT_PEOPLE_USER_TASK, selectPeopleUserTask);
protected UserTask createFeedbackUserTask(FeedbackStepDefinition feedbackStepDefinition, WorkflowDefinitionConversion conversion, Map<String, BaseElement> processElements) { UserTask feedbackTask = new UserTask(); feedbackTask.setId(conversion.getUniqueNumberedId(ConversionConstants.USER_TASK_ID_PREFIX)); feedbackTask.setName(getProvideFeedbackTaskName()); feedbackTask.setAssignee("${" + VARIABLE_FEEDBACK_PROVIDER + "}"); MultiInstanceLoopCharacteristics multiInstanceLoopCharacteristics = new MultiInstanceLoopCharacteristics(); multiInstanceLoopCharacteristics.setSequential(false); multiInstanceLoopCharacteristics.setInputDataItem(VARIABLE_FEEDBACK_PROVIDERS); multiInstanceLoopCharacteristics.setElementVariable(VARIABLE_FEEDBACK_PROVIDER); feedbackTask.setLoopCharacteristics(multiInstanceLoopCharacteristics); addFlowElement(conversion, feedbackTask); processElements.put(FEEDBACK_USER_TASK, feedbackTask); return feedbackTask; }
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; }
userTask.setAssignee(getInitiatorExpression()); userTask.setAssignee(humanStepDefinition.getAssignee());
if(StringUtils.isEmpty(userTask.getAssignee())) userTask.setAssignee("${"+loopCharacteristics.getElementVariable() + "}"); TaskDefinition taskDefinition = bpmnParse.getCurrentProcessDefinition().getTaskDefinition(userTask.getId()); if(taskDefinition.getAssigneeExpression() == null && taskDefinition.getCandidateGroupIdExpressions().isEmpty() && taskDefinition.getCandidateUserIdExpressions().isEmpty())
/** * 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; }