Search in sources :

Example 1 with WorkImpl

use of io.automatiko.engine.workflow.base.core.impl.WorkImpl in project automatiko-engine by automatiko-io.

the class ServerlessWorkflowFactory method humanTaskNode.

public HumanTaskNode humanTaskNode(long id, String name, FunctionDefinition function, ExecutableProcess process, NodeContainer nodeContainer) {
    // then the ht node
    HumanTaskNode humanTaskNode = new HumanTaskNode();
    humanTaskNode.setId(id);
    humanTaskNode.setName(name);
    Work work = new WorkImpl();
    work.setName("Human Task");
    humanTaskNode.setWork(work);
    work.setParameter("NodeName", name);
    humanTaskNode.addInMapping(DEFAULT_WORKFLOW_VAR, DEFAULT_WORKFLOW_VAR);
    nodeContainer.addNode(humanTaskNode);
    return humanTaskNode;
}
Also used : Work(io.automatiko.engine.workflow.base.core.Work) WorkImpl(io.automatiko.engine.workflow.base.core.impl.WorkImpl) HumanTaskNode(io.automatiko.engine.workflow.process.core.node.HumanTaskNode)

Example 2 with WorkImpl

use of io.automatiko.engine.workflow.base.core.impl.WorkImpl in project automatiko-engine by automatiko-io.

the class ServerlessWorkflowFactory method serviceNode.

public WorkItemNode serviceNode(long id, Action action, FunctionDefinition function, NodeContainer nodeContainer) {
    String actionName = action.getName();
    String[] operationParts = function.getOperation().split("#");
    String interfaceStr = operationParts[0];
    String operationStr = operationParts[1];
    WorkItemNode workItemNode = new WorkItemNode();
    workItemNode.setId(id);
    workItemNode.setName(actionName);
    workItemNode.setMetaData(UNIQUE_ID_PARAM, Long.toString(id));
    workItemNode.setMetaData("Type", SERVICE_TASK_TYPE);
    workItemNode.setMetaData("Implementation", "##WebService");
    Work work = new WorkImpl();
    workItemNode.setWork(work);
    work.setName(SERVICE_TASK_TYPE);
    work.setParameter("Interface", interfaceStr);
    work.setParameter("Operation", operationStr);
    work.setParameter("interfaceImplementationRef", interfaceStr);
    work.setParameter("implementation", "##WebService");
    JsonNode params = action.getFunctionRef().getArguments();
    String inputFilter = null;
    String outputFilter = null;
    String scopeFilter = null;
    if (action.getActionDataFilter() != null) {
        inputFilter = unwrapExpression(action.getActionDataFilter().getFromStateData());
        outputFilter = unwrapExpression(action.getActionDataFilter().getResults());
        scopeFilter = unwrapExpression(action.getActionDataFilter().getToStateData());
    }
    Set<String> paramNames = new LinkedHashSet<>();
    if (params != null) {
        Iterator<String> it = params.fieldNames();
        while (it.hasNext()) {
            String name = it.next();
            String value = params.get(name).toString();
            work.setParameter(name, unwrapExpression(value));
            paramNames.add(name);
            work.addParameterDefinition(new ParameterDefinitionImpl(name, new JsonNodeDataType()));
        }
    } else {
        work.setParameter("ParameterType", JSON_NODE);
    }
    Assignment assignment = new Assignment("jq", null, null);
    assignment.setMetaData("Action", new TaskInputJqAssignmentAction(inputFilter, paramNames));
    workItemNode.addInAssociation(new DataAssociation(Collections.emptyList(), "", Arrays.asList(assignment), null));
    Assignment outAssignment = new Assignment("jq", null, null);
    outAssignment.setMetaData("Action", new TaskOutputJqAssignmentAction(outputFilter, scopeFilter));
    workItemNode.addOutAssociation(new DataAssociation(Collections.emptyList(), "", Arrays.asList(outAssignment), null));
    nodeContainer.addNode(workItemNode);
    return workItemNode;
}
Also used : LinkedHashSet(java.util.LinkedHashSet) DataAssociation(io.automatiko.engine.workflow.process.core.node.DataAssociation) JsonNodeDataType(io.automatiko.engine.workflow.base.core.datatype.impl.type.JsonNodeDataType) TaskInputJqAssignmentAction(io.automatiko.engine.workflow.base.instance.impl.jq.TaskInputJqAssignmentAction) JsonNode(com.fasterxml.jackson.databind.JsonNode) ParameterDefinitionImpl(io.automatiko.engine.workflow.base.core.impl.ParameterDefinitionImpl) TaskOutputJqAssignmentAction(io.automatiko.engine.workflow.base.instance.impl.jq.TaskOutputJqAssignmentAction) Assignment(io.automatiko.engine.workflow.process.core.node.Assignment) WorkItemNode(io.automatiko.engine.workflow.process.core.node.WorkItemNode) Work(io.automatiko.engine.workflow.base.core.Work) WorkImpl(io.automatiko.engine.workflow.base.core.impl.WorkImpl)

Example 3 with WorkImpl

use of io.automatiko.engine.workflow.base.core.impl.WorkImpl in project automatiko-engine by automatiko-io.

the class WorkItemNodeFactory method workName.

public WorkItemNodeFactory workName(String name) {
    Work work = getWorkItemNode().getWork();
    if (work == null) {
        work = new WorkImpl();
        getWorkItemNode().setWork(work);
    }
    work.setName(name);
    return this;
}
Also used : Work(io.automatiko.engine.workflow.base.core.Work) WorkImpl(io.automatiko.engine.workflow.base.core.impl.WorkImpl)

Example 4 with WorkImpl

use of io.automatiko.engine.workflow.base.core.impl.WorkImpl in project automatiko-engine by automatiko-io.

the class HumanTaskNodeFactory method skippable.

public HumanTaskNodeFactory skippable(boolean skippable) {
    Work work = getHumanTaskNode().getWork();
    if (work == null) {
        work = new WorkImpl();
        getHumanTaskNode().setWork(work);
    }
    work.setParameter(WORK_SKIPPABLE, Boolean.toString(skippable));
    return this;
}
Also used : Work(io.automatiko.engine.workflow.base.core.Work) WorkImpl(io.automatiko.engine.workflow.base.core.impl.WorkImpl)

Example 5 with WorkImpl

use of io.automatiko.engine.workflow.base.core.impl.WorkImpl in project automatiko-engine by automatiko-io.

the class HumanTaskNodeFactory method priority.

public HumanTaskNodeFactory priority(String priority) {
    Work work = getHumanTaskNode().getWork();
    if (work == null) {
        work = new WorkImpl();
        getHumanTaskNode().setWork(work);
    }
    work.setParameter(WORK_PRIORITY, priority);
    return this;
}
Also used : Work(io.automatiko.engine.workflow.base.core.Work) WorkImpl(io.automatiko.engine.workflow.base.core.impl.WorkImpl)

Aggregations

WorkImpl (io.automatiko.engine.workflow.base.core.impl.WorkImpl)17 Work (io.automatiko.engine.workflow.base.core.Work)16 WorkItemNode (io.automatiko.engine.workflow.process.core.node.WorkItemNode)5 ParameterDefinition (io.automatiko.engine.workflow.base.core.ParameterDefinition)4 ParameterDefinitionImpl (io.automatiko.engine.workflow.base.core.impl.ParameterDefinitionImpl)4 ObjectDataType (io.automatiko.engine.workflow.base.core.datatype.impl.type.ObjectDataType)2 ArrayList (java.util.ArrayList)2 JsonNode (com.fasterxml.jackson.databind.JsonNode)1 Variable (io.automatiko.engine.workflow.base.core.context.variable.Variable)1 IntegerDataType (io.automatiko.engine.workflow.base.core.datatype.impl.type.IntegerDataType)1 JsonNodeDataType (io.automatiko.engine.workflow.base.core.datatype.impl.type.JsonNodeDataType)1 StringDataType (io.automatiko.engine.workflow.base.core.datatype.impl.type.StringDataType)1 TaskInputJqAssignmentAction (io.automatiko.engine.workflow.base.instance.impl.jq.TaskInputJqAssignmentAction)1 TaskOutputJqAssignmentAction (io.automatiko.engine.workflow.base.instance.impl.jq.TaskOutputJqAssignmentAction)1 ItemDefinition (io.automatiko.engine.workflow.bpmn2.core.ItemDefinition)1 ProcessBuildData (io.automatiko.engine.workflow.compiler.xml.ProcessBuildData)1 Assignment (io.automatiko.engine.workflow.process.core.node.Assignment)1 DataAssociation (io.automatiko.engine.workflow.process.core.node.DataAssociation)1 EndNode (io.automatiko.engine.workflow.process.core.node.EndNode)1 HumanTaskNode (io.automatiko.engine.workflow.process.core.node.HumanTaskNode)1