class MaestroRulesActionSpawnWorkflow in Maestro 3.x
Same name and namespace in other branches
- 8.2 src/Plugin/RulesAction/MaestroRulesActionSpawnWorkflow.php \Drupal\maestro\Plugin\RulesAction\MaestroRulesActionSpawnWorkflow
Provides a 'Delete entity' action.
Plugin annotation
@RulesAction(
id = "maestro_rules_spawn_workflow",
label = @Translation("Spawn Maestro Workflow"),
category = @Translation("Maestro"),
context = {
"template" = @ContextDefinition("string",
label = @Translation("Maestro Template Machine Name"),
description = @Translation("Specifies the Maestro Template's machine name you wish to spawn. You can find the machine name on the template listing. This is just a string value."),
default_value = NULL,
required = true
),
"entity" = @ContextDefinition("entity",
label = @Translation("Entity"),
description = @Translation("Specifies the entity which should be attached to the workflow. Please use the data selector and choose the entity. If this is a node, choose the 'node' data selector.")
),
}
)
Hierarchy
- class \Drupal\maestro\Plugin\RulesAction\MaestroRulesActionSpawnWorkflow extends \Drupal\rules\Core\RulesActionBase
Expanded class hierarchy of MaestroRulesActionSpawnWorkflow
File
- src/
Plugin/ RulesAction/ MaestroRulesActionSpawnWorkflow.php, line 30
Namespace
Drupal\maestro\Plugin\RulesActionView source
class MaestroRulesActionSpawnWorkflow extends RulesActionBase {
/**
* Spawns a workflow.
*
* @param string $template
* The workflow template machine name you wish to spawn.
* @param \Drupal\Core\Entity\EntityInterface $entity
* The entity that is being saved.
*/
protected function doExecute($template = NULL, EntityInterface $entity = NULL) {
if ($template !== NULL) {
$engine = new MaestroEngine();
$process_id = $engine
->newProcess($template);
if ($process_id) {
$entity_id = current($entity->nid
->getValue())['value'];
$entity_bundle = current($entity->type
->getValue())['target_id'];
MaestroEngine::createEntityIdentifier($process_id, 'node', $entity_bundle, 'rules_added_entity', $entity_id);
}
else {
// Error condition. The process was unable to be kicked off.
drupal_set_message(t('Unable to begin workflow. Please check with administrator for more information.'));
}
}
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
MaestroRulesActionSpawnWorkflow:: |
protected | function | Spawns a workflow. |