Skip to content

Adding Workflow Elements

The WorkflowElements are located in the app/Workflow/Elements/<WorkflowType> folder. They are sorted by the Workflow types.

List of all elements.

Actions:

This Workflow type interacts with external components like the database or the client.

Api:

To get data from a external api.

Event:

Just the Events.

Flow:

Workflow elements used to manipulate the flow of the workflow.

Operator:

These elements manipulate the data passed in.

Query:

To get data from the database by building querys.

Source:

Everything to work with resources.

Example element:

/**
* Html to be displayed in the bakery
*/
class WorkflowActionExample extends WorkflowAction
{
# options displayed in the bakery
public function init() : void
{
parent::init();
$this->addOption(new WorkflowOptionText('key', 'label', 'default'));
}
# the actual code executed when the element is called
public function run() : void
{
$in = $this->getIn('port'); #default is default
$toOption = $this->getOption('to');
$requiredOption = $this->requireOption('option_name'); # this throws a WorkflowOptionRequiredException when the option is not set
# do something
$in = $this->doSomething($in);
# sending
$this->setOut('port', $in); # $value default is null
$this->runOut(); # release the element
}
}

To finally use the new Element add it to the getInlineMorphTypes() in the app\Workflow\WorkflowElement.