Workflow: come si fa a scatenare una transizione di stato da codice python?
Up to Table of Contents
Supponiamo di dover cambiare lo stato dell'oggetto obj: non basta controllare solo che nello stato attuale in cui si trova l'oggetto sia definita la transizione desiderata che porta al nuovo stato. Ciò perchè salteremmo la valutazione dell'espressione Expression, il controllo dei permessi che possono essere definiti su ogni transizione e potrebbe quindi generarsi un'eccezione inaspettata.
Ecco il codice:
portal_workflow = getToolByName(self, 'portal_workflow')
wf_list = portal_workflow.getWorkflowsFor(obj)
if wf_list:
wf = wf_list[0]
if wf.isActionSupported(obj, 'publish'):
p_wf.doActionFor(obj, 'publish')