Skip to content

[Workflow] Unable to get transition definition by its name #43919

Closed
@smilesrg

Description

@smilesrg

Description

In the documentation:

 $aTransition = $blogPublishingWorkflow->getDefinition()->getTransitions()[0];

    $priority = $blogPublishingWorkflow
        ->getMetadataStore()
        ->getTransitionMetadata($aTransition)['priority'] ?? 0

but to get specific transitions, I need to get them all and iterate over the array. Would be super nice to get transition and transition metadata by its name.

Example

Getting transition by name

Before:

$transitions = $this->stateMachine->getDefinition()->getTransitions();
foreach ($transitions as $item) {
     if ($item->getName() === 'transition_name') {
        // ...
     }
}

After:

$aTransition = $blogPublishingWorkflow->getDefinition()->getTransition('transition_name');

Getting transition metadata by name

Before:

$transitions = $this->stateMachine->getDefinition()->getTransitions();
foreach ($transitions as $item) {
     if ($item->getName() === 'transition_name') {
        $value = $blogPublishingWorkflow
            ->getMetadataStore()
            ->getTransitionMetadata($item)['metadata_field'] ?? 0;
     }
}
    

After:

    $priority = $blogPublishingWorkflow
        ->getMetadataStore()
        ->getTransitionMetadataByTransitionName('transition_name')['priority'] ?? 0;

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions