Workflow / Business Process Management
A workflow is a model of a process in your application. Workflow Management provides configuration of multiple workflows on Assets, Documents, Data, and Enrichment to support maintenance of content, life cycles and various other processes.
Pimcore Workflow Management provides configuration of multiple workflows on Pimcore elements (Assets / DAM, Documents / CMS, Data Object / PIM) to support data maintenance processes, element life cycles and various other processes. It is based on the Symfony workflow component and extends it with a few Pimcore specific features. A workflow is a model of a process in your application. It may be the process of how a blog post goes from draft, review and publish. Another example is when a user submits a series of different forms to complete a task. Such processes are best kept away from your models and should be defined in configuration. A definition of a workflow consist of places and actions to get from one place to another.
- Workflow: A workflow is a model of a process an element in Pimcore goes through. It consists of places, transitions, a marking store, global actions and a couple of additional configuration options. Each element can be in multiple workflows simultaneously.
- Workflow Type ‘Workflow: Workflow type workflow describes the default type of workflows and allows to model a workflow net which is a subclass of a petri net. It models a process of an element and allows multiple places simultaneously for this element.
- Workflow Type ‘State Machine’: A state machine is a subset of a workflow and its purpose is to hold a state of your model. The most important restriction is that a state machine cannot be in more than one place simultaneously.
- Place: A place is a step in the workflow and describes a characteristic or a status of an element – for example in progress, product attributes defined, copyright available, element ready for publish, etc. Depending on the place an element may appear in a specific view (e.g. custom layout for data objects) and may have certain special permissions (e.g. finished elements cannot be modified anymore).
- Marking Store: The marking store stores the current place(s) for each element. Pimcore ships with a couple of stores that can be configured in workflow configuration.
- Transition: A transition describes the action to get from one place to another. Transitions are allowed (or not) depending on additional criteria (transition guards) and may require additional notes and information entered by user.
- Transition Guard: Define criteria that define if a transition is currently allowed or not.
- Global Action: While transitions are only available when the element is in a certain place, global actions are available at every place. Besides that, they are very similar to transitions
Improved Collaboration and Notifications
Email notifications can be configured to be sent to users when and transition takes place. To do this simply specify an array of user(s) or role(s) that you would like to be notified in options section of the transition definition. Roles will send an email to every user with that role. Configure a Pimcore Mail Document and use full power of Pimcore Mail Documents, with Controller, Action, Placeholders, etc. In the mail document same parameters as above are available. If more custom notifications are necessary, use custom event listeners.
Report every action used on the object via the Workflow module
Visualizing all workflow details, current state with a workflow graph
The benefit of implementing workflows is that you simplify and accelerate any process by reducing manual, duplicated entry and request handling. Greatly reducing errors and the cost of re-work to dramatically lessen the risk of improperly approved requests, contracts, and transactions for improved compliance with actionable audit trails.