Expressions¶
Expressions in DCWorkflow are TALES expressions. They are used as access guards and for the setting variable values.
[Note: I haven’t figured out what all these contexts actually are and what you can use them for. Explanations are is welcome!]
Some of the contexts have slightly different meanings from what is provided for expressions in page templates:
‘here’ – The content object (rather than the workflow object)
‘container’ – The content object’s container
Several other contexts are also provided:
‘state_change’ – A special object containing information about the state change (see below)
‘transition’ – The transition object being executed
‘status’ – The former status ‘workflow’ – The workflow definition object
‘scripts’ – The scripts in the workflow definition object
‘state_change’ objects provide the following attributes, some of which are duplicates of the above information:
‘status’ is a mapping containing the workflow status. This includes all the variables defined in the variable tab with “store in state” checked.
‘object’ is the object being modified by workflow.(Same as the ‘here’ variable above.)
‘workflow’ is the workflow definition object. (Same as the ‘workflow’ variable above.)
transition’ is the transition object being executed. (Same as the ‘transition’ variable above.)
‘old_state’ is the former state object. The name of the former state, for example “published”, is available as ‘old_state.getId()’. (Note that DCWorkflow defines ‘state’ and ‘status’ as different entities; the name of the current ‘state’ is stored in the ‘status’. The word clash is unfortunate; patches welcome.)
‘new_state’ is the destination state object. Use ‘new_state.getId()’ to access the new state name.
‘kwargs’ is the keyword arguments passed to the doActionFor() method.
‘getHistory()’, a method that returns a copy of the object’s workflow history.
‘getPortal()’, which returns the root of the portal.
‘ObjectDeleted’ and ‘ObjectMoved’, exceptions that can be raised by scripts to indicate to the workflow that an object has been moved or deleted.
‘getDateTime’ is a method that returns the DateTime of the transition.