protected Node createNode() { return new HumanTaskNode(); }
public HumanTaskNodeFactory taskName(String taskName) { Work work = getHumanTaskNode().getWork(); if (work == null) { work = new WorkImpl(); getHumanTaskNode().setWork(work); } work.setParameter("TaskName", taskName); return this; }
protected void handleNode(final Node node, final Element element, final String uri, final String localName, final ExtensibleXmlParser parser) throws SAXException { super.handleNode(node, element, uri, localName, parser); HumanTaskNode humanTaskNode = (HumanTaskNode) node; Work work = humanTaskNode.getWork(); work.setName("Human Task"); String performerRef = element.getAttribute("performerRef"); if (performerRef != null) { humanTaskNode.getWork().setParameter("ActorId", performerRef); } Map<String, String> inputs = new HashMap<>(); Map<String, String> outputs = new HashMap<>(); Map<String, String> inputTypes = new HashMap<>(); Map<String, String> outputTypes = new HashMap<>(); loadDataInputsAndOutputs(element, inputs, outputs, inputTypes, outputTypes, parser); humanTaskNode.setMetaData("DataInputs", inputTypes); humanTaskNode.setMetaData("DataOutputs", outputTypes); humanTaskNode.getWork().setParameter("NodeName", humanTaskNode.getName()); humanTaskNode.getWork().setParameter("TaskName", humanTaskNode.getName().replaceAll("\\s", "")); for (Entry<String, String> entry : inputs.entrySet()) { humanTaskNode.addInAssociation(new DataAssociation(entry.getValue(), entry.getKey(), Collections.emptyList(), null)); } for (Entry<String, String> entry : outputs.entrySet()) { humanTaskNode.addOutAssociation(new DataAssociation(entry.getKey(), entry.getValue(), Collections.emptyList(), null)); } }
super.handleNode(node, element, uri, localName, parser); HumanTaskNode humanTaskNode = (HumanTaskNode) node; Work work = humanTaskNode.getWork(); work.setName("Human Task"); Map<String, String> dataInputs = new HashMap<String, String>(); Map<String, String> dataOutputs = new HashMap<String, String>(); owner += "," + owners.get(i); humanTaskNode.getWork().setParameter("ActorId", owner); humanTaskNode.getWork().setParameter("NodeName", humanTaskNode.getName() );
assertThat(humanTaskOne.getName()).isEqualTo("First task"); assertThat(humanTaskOne.getWork().getName()).isEqualTo("Human Task"); assertThat(humanTaskOne.getInAssociations()).hasSize(1); assertThat(humanTaskOne.getInAssociations().get(0).getSources()).hasSize(1); assertThat(humanTaskOne.getInAssociations().get(0).getSources().get(0)).isEqualTo("caseFile_invoice"); assertThat(humanTaskOne.getInAssociations().get(0).getTarget()).isEqualTo("invoice"); assertThat(humanTaskOne.getName()).isEqualTo("Stage task"); assertThat(humanTaskOne.getWork().getName()).isEqualTo("Human Task"); assertThat(humanTaskOne.getInAssociations()).hasSize(2); assertThat(humanTaskOne.getInAssociations().get(0).getSources()).hasSize(1); assertThat(humanTaskOne.getInAssociations().get(0).getSources().get(0)).isEqualTo("caseFile_shipped"); assertThat(humanTaskOne.getInAssociations().get(0).getTarget()).isEqualTo("shipped"); assertThat(humanTaskOne.getInAssociations().get(1).getSources()).hasSize(1); assertThat(humanTaskOne.getInAssociations().get(1).getSources().get(0)).isEqualTo("caseFile_invoice"); assertThat(humanTaskOne.getInAssociations().get(1).getTarget()).isEqualTo("invoiceApproved"); assertThat(humanTaskOne.getOutAssociations()).hasSize(1); assertThat(humanTaskOne.getOutAssociations().get(0).getSources()).hasSize(1); assertThat(humanTaskOne.getOutAssociations().get(0).getSources().get(0)).isEqualTo("shippedConfirmed"); assertThat(humanTaskOne.getOutAssociations().get(0).getTarget()).isEqualTo("caseFile_shipped");
startNode.setId( 1 ); HumanTaskNode workItemNode = new HumanTaskNode(); workItemNode.setName( "workItemNode" ); workItemNode.setId( 2 ); workItemNode.addInMapping( "Attachment", "MyObject" ); workItemNode.addOutMapping( "Result", "MyObject" ); workItemNode.addOutMapping( "Result.length()", "Number" ); Work work = new WorkImpl(); work.setName( workName ); parameterDefinition = new ParameterDefinitionImpl( "Comment", new StringDataType() ); parameterDefinitions.add( parameterDefinition ); work.setParameterDefinitions( parameterDefinitions ); work.setParameter( "ActorId", "#{UserName}" ); work.setParameter( "Content", "#{Person.name}" ); workItemNode.setWork( work );
assertThat(humanTaskOne.getName()).isEqualTo("Check Application"); assertThat(humanTaskOne.getWork().getName()).isEqualTo("Human Task"); assertThat(humanTaskOne.getWork().getParameter("ActorId")).isEqualTo("owner"); assertThat(humanTaskOne.getWork().getParameter("TaskName")).isEqualTo("CheckApplication"); assertThat(humanTaskTwo.getName()).isEqualTo("Provide Customer Rating"); assertThat(humanTaskTwo.getWork().getName()).isEqualTo("Human Task"); assertThat(humanTaskTwo.getWork().getParameter("ActorId")).isEqualTo("manager"); assertThat(humanTaskTwo.getWork().getParameter("TaskName")).isEqualTo("ProvideCustomerRating");
Work work = new WorkImpl(); work.setName("workname"); Set<ParameterDefinition> parameterDefinitions = new HashSet<ParameterDefinition>(); ParameterDefinition parameterDefinition = new ParameterDefinitionImpl("param1", new StringDataType()); parameterDefinition = new ParameterDefinitionImpl("param2", new IntegerDataType()); parameterDefinitions.add(parameterDefinition); work.setParameterDefinitions(parameterDefinitions); work.setParameter("param1", "value1"); work.setParameter("param2", 1); workItemNode.setWork(work); connection.setMetaData("bendpoints", "[]"); HumanTaskNode humanTaskNode = new HumanTaskNode(); humanTaskNode.setName("Human Task"); work = humanTaskNode.getWork(); parameterDefinitions = new HashSet<ParameterDefinition>(); parameterDefinition = new ParameterDefinitionImpl("TaskName", new StringDataType()); work.setParameter("TaskName", "Do something"); work.setParameter("ActorId", "John Doe"); humanTaskNode.setWaitForCompletion(false); humanTaskNode.setActions(ExtendedNodeImpl.EVENT_NODE_ENTER, actions); humanTaskNode.setActions(ExtendedNodeImpl.EVENT_NODE_EXIT, actions); process.addNode(humanTaskNode); connection = new ConnectionImpl(workItemNode, Node.CONNECTION_DEFAULT_TYPE, humanTaskNode, Node.CONNECTION_DEFAULT_TYPE);
Role performer = roles.get(humanTaskNode.getWork().getParameter("ActorId")); if (performer != null) { humanTaskNode.getWork().setParameter("ActorId", performer.getName());
.setParameter("workItemId", ((HumanTaskNodeInstance) nodeInstance).getWorkItemId()) .getSingleResult(); String name = ((HumanTaskNode) upgradedNode).getName(); String description = (String) ((HumanTaskNode) upgradedNode).getWork().getParameter("Description");
String actorId = (String) taskNode.getWork().getParameter("ActorId"); if (actorId == null) { actorId = ""; String groupId = (String) taskNode.getWork().getParameter("GroupId"); if (groupId == null) { groupId = ""; " // add results here\n"; for (Map.Entry<String, String> entry: taskNode.getOutMappings().entrySet()) { String type = null; VariableScope variableScope = (VariableScope) taskNode.resolveContext(VariableScope.VARIABLE_SCOPE, entry.getValue()); if (variableScope != null) { type = variableScope.findVariable(entry.getValue()).getType().getStringType(); WorkItemNode taskNode = (WorkItemNode) currentNode; testCode += " // if necessary, complete request for service task \"" + taskNode.getWork().getName() + "\"\n"; return processNodes(name, ((NodeImpl) currentNode).getTo().getTo(), testCode, cases, ongoingCases); } else if (currentNode instanceof EventNode) {
public void writeNode(Node node, StringBuilder xmlDump, int metaDataType) { HumanTaskNode humanTaskNode = (HumanTaskNode) node; writeNode("userTask", humanTaskNode, xmlDump, metaDataType); xmlDump.append(">" + EOL); writeExtensionElements(humanTaskNode, xmlDump); writeIO(humanTaskNode, xmlDump); String ownerString = (String) humanTaskNode.getWork().getParameter("ActorId"); if (ownerString != null) { String[] owners = ownerString.split(","); for (String owner: owners) { xmlDump.append( " <potentialOwner>" + EOL + " <resourceAssignmentExpression>" + EOL + " <formalExpression>" + owner + "</formalExpression>" + EOL + " </resourceAssignmentExpression>" + EOL + " </potentialOwner>" + EOL); } } endNode("userTask", xmlDump); }
ksession.startProcess("org.jbpm.HelloWorld"); HumanTaskNode node = new HumanTaskNode(); node.setName("Task2"); node.setId(4); insertNodeInBetween(process, 2, 3, node);
final Map<String, TaskDef> tasks = new HashMap<String, TaskDef>(); for (HumanTaskNode node: result) { String taskName = (String) node.getWork().getParameter("TaskName"); if (taskName == null) { break; tasks.put(taskName, task); for (Map.Entry<String, String> entry: node.getInMappings().entrySet()) { if (task.getInputParams().get(entry.getKey()) == null) { VariableScope variableScope = (VariableScope) node.resolveContext(VariableScope.VARIABLE_SCOPE, entry.getValue()); if (variableScope != null) { task.getInputParams().put(entry.getKey(), variableScope.findVariable(entry.getValue()).getType().getStringType()); for (Map.Entry<String, String> entry: node.getOutMappings().entrySet()) { if (task.getOutputParams().get(entry.getKey()) == null) { VariableScope variableScope = (VariableScope) node.resolveContext(VariableScope.VARIABLE_SCOPE, entry.getValue()); if (variableScope != null && !"outcome".equals(entry.getKey())) { task.getOutputParams().put(entry.getKey(), variableScope.findVariable(entry.getValue()).getType().getStringType());
private static void getPendingChecklistItems(NodeContainer container, List<ChecklistItem> result, String processId) { for (Node node: container.getNodes()) { if (node instanceof HumanTaskNode) { Work workItem = ((HumanTaskNode) node).getWork(); int priority = 0; String priorityString = (String) workItem.getParameter("Priority"); if (priorityString != null) { try { String actorId = (String) workItem.getParameter("ActorId"); if (actorId != null && actorId.trim().length() == 0) { actorId = null; String groupId = (String) workItem.getParameter("GroupId"); if (groupId != null && groupId.trim().length() == 0) { groupId = null; if (((HumanTaskNode) node).getDefaultIncomingConnections().size() == 0) { status = Status.Optional;
protected void visitParameters(WorkItemNode workItemNode, StringBuilder xmlDump) { super.visitParameters(workItemNode, xmlDump); HumanTaskNode humanTaskNode = (HumanTaskNode) workItemNode; String swimlane = humanTaskNode.getSwimlane(); if (swimlane != null) { xmlDump.append("swimlane=\"" + swimlane + "\" "); } }
public void handleNode(final Node node, final Element element, final String uri, final String localName, final ExtensibleXmlParser parser) throws SAXException { super.handleNode(node, element, uri, localName, parser); HumanTaskNode humanTaskNode = (HumanTaskNode) node; final String swimlane = element.getAttribute("swimlane"); if (swimlane != null && !"".equals(swimlane)) { humanTaskNode.setSwimlane(swimlane); } }
@Override protected String readPotentialOwner(org.w3c.dom.Node xmlNode, HumanTaskNode humanTaskNode) { String userOrGroup = xmlNode.getFirstChild().getFirstChild().getFirstChild().getTextContent(); String mainProcessId = repositoryHelper.getProcess().getId(); repository.getProcessDesc(mainProcessId).getTaskAssignments().put(humanTaskNode.getName(), userOrGroup); return userOrGroup; }
public HumanTaskNodeFactory inMapping(String parameterName, String variableName) { getHumanTaskNode().addInMapping(parameterName, variableName); return this; }
assertThat(humanTaskOne.getName()).isEqualTo("First task"); assertThat(humanTaskOne.getWork().getName()).isEqualTo("Human Task"); assertThat(humanTaskOne.getInAssociations()).hasSize(1); assertThat(humanTaskOne.getInAssociations().get(0).getSources()).hasSize(1); assertThat(humanTaskOne.getInAssociations().get(0).getSources().get(0)).isEqualTo("caseFile_document"); assertThat(humanTaskOne.getInAssociations().get(0).getTarget()).isEqualTo("test"); assertThat(humanTaskOne.getOutAssociations()).hasSize(0);