The Pimcore workflow engine provides several different ways how to store the actual places of a subject. These are represented of the following marking store types.
This is the default marking store. The place information is stored in the element_workfow_state table. This would be the best option for Assets and Documents. For data objects the other marking store options might be the better choice as the data would be stored directly in the data object model as attributes.
Stores the place in a attribute of the subject (calls the setter method). Can be used if a model cannot be in more then one state at the same time. This is the default single_state marking store provided by the Symfony framework. For data objects a select field (or maybe input field) would be the right Pimcore field to store the places when the single_state marking store is used.
Same as single_state but can be used if the subject can be in more then one state at the same time. Note: this cannot be used in combination with data object multiselect fields - use data_object_multiple_state instead.
Can be used to store mutliple places in a data object multiselect field.
data_object_splitted_state (data objects only)
Works similar to single_state and data_object_multiple_state but is able to store different places in different Pimcore data object attributes. Therefore it's needed to configure a mapping between places and data object attribute names.
In the following example places which are related to the text of the data object are stored in the
attribute whereas image related places are stored in
- text_open: workflowStateText
Options provider (for single_state, data_object_multiple_state and data_object_splitted_state)
If data object attributes (select or multiselect) are used to store the places a special options provider can be used
to automatically provide the correct select options. Just setup
@pimcore.workflow.place-options-provider as options
provider and the workflow name as options provider data in the used data object attribute.
This options provider adds the places in a nicely formatted way: