Technical Aspects

Workflow Definition Persistence

The workflow designer creates standard Pimcore workflow definitions which are loaded by the symfony configuration tree. All workflows defined with the workflow designer are stored in var/config/workflow-designer/workflows.yaml.

Additional information for the workflow designer (like description, folder, the diagram and some mappings) is packed into the custom_extensions node of the Pimcore workflow configuration and read from there.

In the workflow designer, only workflows created with the workflow designer (thus saved in the var/config/workflow-designer/workflows.yaml file) are listed.

There might be additional workflows defined in the system. They are also applied the their subjects, but they cannot be configured in the workflow designer.

Diagram Synchronization

The workflow diagram for the visual workflow definition and the actual workflow definition of places, transitions and global actions need to be synchronized. This happens with following rules:

  • When opening a workflow in workflow designer and no diagram exists, a diagram is created automatically with some simple layouting logic.
  • When opening a workflow in workflow designer and a diagram exists, it is synchronized with the places, transitions and global actions definitions of the workflow - means missing elements are added to the diagram, and zombie elements in the diagram are removed.
  • When saving a workflow in the workflow designer, all the workflow elements (places, transitions, global actions) are extracted from the diagram and added to the workflow configuration.