use of io.automatiko.engine.workflow.process.executable.core.Metadata.ACTION in project automatiko-engine by automatiko-io.
the class ServerlessWorkflowFactory method stateDataFilterActionNode.
public ActionNode stateDataFilterActionNode(long id, String name, NodeContainer nodeContainer, String outputFilterString) {
ActionNode actionNode = new ActionNode();
actionNode.setId(id);
actionNode.setName(name);
String outputFilter = unwrapExpression(outputFilterString);
ConsequenceAction processAction = new ConsequenceAction(null, "new io.automatiko.engine.workflow.base.instance.impl.jq.OutputJqAssignmentAction(" + escapeExpression(outputFilter) + ").execute(null, context);");
io.automatiko.engine.workflow.base.instance.impl.Action injectAction = context -> {
new OutputJqAssignmentAction(outputFilter).execute(null, context);
};
processAction.setMetaData(ACTION, injectAction);
actionNode.setAction(processAction);
nodeContainer.addNode(actionNode);
return actionNode;
}
use of io.automatiko.engine.workflow.process.executable.core.Metadata.ACTION in project automatiko-engine by automatiko-io.
the class ExecutableProcessFactory method timerAction.
protected ProcessAction timerAction(String type) {
ProcessAction signal = new ProcessAction();
Action action = kcontext -> kcontext.getProcessInstance().signalEvent(type, kcontext.getNodeInstance().getId());
signal.wire(action);
return signal;
}
use of io.automatiko.engine.workflow.process.executable.core.Metadata.ACTION in project automatiko-engine by automatiko-io.
the class ServerlessWorkflowFactory method expressionActionStateNode.
public ActionNode expressionActionStateNode(long id, String name, NodeContainer nodeContainer, String expression, Action action) {
ActionNode actionNode = new ActionNode();
actionNode.setId(id);
actionNode.setName(name);
ActionDataFilter actionDataFilter = action.getActionDataFilter();
StringBuilder functionArguments = new StringBuilder();
if (action.getFunctionRef().getArguments() != null) {
functionArguments.append("(");
for (JsonNode argument : action.getFunctionRef().getArguments()) {
functionArguments.append(unwrapExpression(argument.toString())).append(",");
}
functionArguments.deleteCharAt(functionArguments.length() - 1);
functionArguments.append(")");
}
String inputFilter = actionDataFilter == null ? null : unwrapExpression(actionDataFilter.getFromStateData());
String outputFilter = actionDataFilter == null ? null : unwrapExpression(actionDataFilter.getResults());
String scopeFilter = actionDataFilter == null ? null : unwrapExpression(actionDataFilter.getToStateData());
ConsequenceAction processAction = new ConsequenceAction(null, "expression(context, " + escapeExpression(expression + functionArguments) + ", " + escapeExpression(inputFilter) + ");");
if (actionDataFilter != null && actionDataFilter.isUseResults()) {
processAction = new ConsequenceAction(null, "expression(context, " + escapeExpression(expression + functionArguments) + ", " + escapeExpression(inputFilter) + ", " + escapeExpression(outputFilter) + ", " + escapeExpression(scopeFilter) + ");");
}
io.automatiko.engine.workflow.base.instance.impl.Action injectAction = context -> {
if (actionDataFilter != null && actionDataFilter.isUseResults()) {
io.automatiko.engine.workflow.sw.ServerlessFunctions.expression(context, expression, inputFilter, outputFilter, scopeFilter);
} else {
io.automatiko.engine.workflow.sw.ServerlessFunctions.expression(context, expression, inputFilter);
}
};
processAction.setMetaData(ACTION, injectAction);
actionNode.setAction(processAction);
nodeContainer.addNode(actionNode);
return actionNode;
}
use of io.automatiko.engine.workflow.process.executable.core.Metadata.ACTION in project automatiko-engine by automatiko-io.
the class ServerlessWorkflowFactory method injectStateNode.
public ActionNode injectStateNode(long id, String name, NodeContainer nodeContainer, String dataToInject) {
ActionNode actionNode = new ActionNode();
actionNode.setId(id);
actionNode.setName(name);
ConsequenceAction processAction = new ConsequenceAction(null, "inject(context, " + escapeExpression(dataToInject) + ");");
io.automatiko.engine.workflow.base.instance.impl.Action injectAction = context -> {
io.automatiko.engine.workflow.sw.ServerlessFunctions.inject(context, dataToInject);
};
processAction.setMetaData(ACTION, injectAction);
actionNode.setAction(processAction);
nodeContainer.addNode(actionNode);
return actionNode;
}
Aggregations