Personal tools
You are here: Home Documentazione Domade Frequenti (FAQ) Workflow: come si fa a scatenare una transizione di stato da codice python?
Document Actions

Workflow: come si fa a scatenare una transizione di stato da codice python?

Up to Table of Contents

Qual è la modalità corretta per effettuare in sicurezza transizioni di workflow da codice (utilizzando il metodo isActionSupported)?

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')

 

by Davide Moro last modified 2007-10-26 12:47

Powered by Plone CMS, the Open Source Content Management System

This site conforms to the following standards: