Workflows en Plone
-
Upload
laloea -
Category
Technology
-
view
960 -
download
0
Transcript of Workflows en Plone
-
Administracin de procesos en Plone.Eduardo Espinosa Avila.Febrero 2009.
*
-
Los workflows son mapas de procesos de negocio. Se componen de tareas y sus relaciones, criterios para indicar inicio y trmino de los procesos y la informacin sobre la tarea individual.
Un workflow es un conjunto de interacciones que deben realizarse para completar una actividad o tarea. Por ejemplo, solicitudes de admisin en una escuela, o solicitudes de viaje de alguna institucin. Estas tareas involucran a varias personas, y son diferentes dependiendo de la institucin.Grficamente se puede representar como una mquina de estados con transiciones etiquetadas.Workflows
*
-
Un ejemplo de un workflow sencillo,representado como mquina de estados.Workflows
*
-
El mismo workflow, especificando los permisos sobre las transiciones.En general, para disear un workflow, se realizan tres actividades: Definir los estados del workflow. Definir las transiciones. Definir permisos (especificar quin puede realizar las transiciones).
Workflows
*
-
En http://www.wfmc.org/ y http://www.e-workflow.org/ se definen los estndares puede verse que actualmente hay gran auge por realizar investigacin y desarrollo relacionado con workflows, tambin se muestran diversos casos de xito, agrupados en los siguientes rubros: Acadmico. Financiero. Gubernamental. Salud. Industrias. Tecnologa. Transporte. Otros.
Workflows
*
-
Una de las fortalezas de Plone es su componente de workflows. El manejo de workflows es uno de los temas base de content management, que es la separacin de la lgica, el contenido y la presentacin.
El producto para workflows ms usado en Plone es DCWorkflow el cual es un producto opensource lanzado por la Zope Corporation. DCWorkflow provee ciertas caractersticas y limitaciones claves que deben tomarse en cuenta para comprender su uso.
Existen otros sistemas de workflows, orientados a diferentes conceptos como son tareas, algunos de ellos estn disponibles para Plone, p.ej. OpenFlow y AlphaFlow. Sin embargo DCWorkflow es bastante simple, de gran alcance y proporciona la funcionalidad que la mayora de usuarios necesitan.Workflows en Plone
*
-
El concepto DCWorkflow.
DCWorkflow asume ciertas cosas sobre el proceso (workflow):
Existe un objeto en el sistema que representa la tarea que debe completarse.
Todos los objetos de un mismo tipo tienen asociado el mismo workflow.
Las tareas son asignadas a roles, no a usuarios.
DCWorkflow facilita implementar workflows que se adaptan a esta descripcin; de no ser as, existen otras alternativas como AlphaFlow, un motor de workflows para Plone ms complejo y potente.Workflows en Plone
*
-
Creando Workflows en Plone.
Para crear definiciones de workflows en Plone con el producto DCWorkflow, se debe hacer los siguiente:
Definir los estados del workflow. Definir las transiciones. Definir los permisos. (Especificar quin puede hacer qu sobre el contenido). Definir worklists y scripts.
Se pueden utilizar expresiones TALES (Template Attribute Language Expression Syntax) para acceder a atributos de objetos.Workflows en Plone
*
-
Creando Workflows en Plone 2.1.
Plone 2.x tiene incluidos dos workflows: Default workflow (plone_workflow) y Folder workflow (folder_workflow); si se desean aadir otros workflows al sitio, existen tres mtodos principales:
Utilizando la interfaz de administracin de Zope (ZMI).
Usando el producto ArchGenXML. Es una herramienta que genera productos para Zope basados en Archetypes, a partir de modelos UML basados en XMI (XML Metadata Interchange, .xmi, .zargo, .zuml).
Va cdigo de Python (puede ser generado con ArchGenXML).
Se mostrarn algunos puntos de la creacin con Python.Workflows en Plone 2.1
*
-
Creando Workflows en Plone 2.1 con cdigo de Python.
Comenzamos importando algunas definiciones tiles:
from Products.CMFCore.utils import getToolByNamefrom Products.CMFCore.WorkflowTool import addWorkflowFactoryfrom Products.DCWorkflow.DCWorkflow import DCWorkflowDefinitionfrom Products.ExternalMethod.ExternalMethod import ExternalMethod
El nombre del producto:
from Products.MiProducto.config import PROJECTNAME as productnameWorkflows en Plone 2.1
*
-
Creando Workflows en Plone 2.1 con cdigo de Python.
Creamos una funcin de definicin del workflow:
def setup_mi_workflow(self, workflow): """ Definicin de mi_workflow """ workflow.setProperties(title='mi_workflow') # Estados for s in [estado_1, estado_2]: workflow.states.addState(s) # Transiciones for t in [pasar_a_2, regresar_a_1]: workflow.transitions.addTransition(t) # Variables tiles for v in ['action', 'review_history', 'actor', 'comments', 'time', 'wf_title']: workflow.variables.addVariable(v) # Permisos administrados for p in ('Access contents information', 'Modify portal content', 'View'): workflow.addManagedPermission(p)Workflows en Plone 2.1
*
-
Creando Workflows en Plone 2.1 con cdigo de Python.
Definimos las propiedades de los estados:
## Estado inicial workflow.states.setInitialState(estado_1')
## Propiedades del estado stateDef = workflow.states[estado_1'] stateDef.setProperties(title=""" Estado 1""", transitions=(pasar_a_2',)) stateDef.setPermission('Access contents information', 1, ['Owner']) stateDef.setPermission('Modify portal content', 1, ['Owner']) stateDef.setPermission('View', 1, ['Manager', 'Owner'])Workflows en Plone 2.1
*
-
Creando Workflows en Plone 2.1 con cdigo de Python.
Definimos las propiedades de las transiciones:
## Propiedades de la transicin transitionDef = workflow.transitions[pasar_a_2'] transitionDef.setProperties(title=""Pasar al estado 2""", new_state_id=""estado_2""", trigger_type=1, script_name="""""", after_script_name="""""", actbox_name=""Pasar a 2""", actbox_url="""%(content_url)s/content_show_form""", actbox_category="""workflow""", props={'guard_roles': 'Owner'}, )Workflows en Plone 2.1
*
-
Creando Workflows en Plone 2.1 con cdigo de Python.
Definimos las propiedades de las variables:
## Variable de estado workflow.variables.setStateVar('review_state')
## Propiedades de la variable variableDef = workflow.variables['review_history'] variableDef.setProperties(description=""Historial del workflow""", default_value="""""", default_expr="""state_change/getHistory""", for_catalog=0, for_status=0, update_always=0, props={'guard_permissions': 'Request review; Review portal content'})Workflows en Plone 2.1
*
-
Creando Workflows en Plone 2.1 con cdigo de Python.
Creamos una funcin para instalar el workflow:
def create_mi_workflow(self, id): """Crea mi_solicitud""" ob = DCWorkflowDefinition(id) setup_mi_workflow(self, ob) return ob
# Llamamos al Workflow Factory para crear el objeto dentro del sitioaddWorkflowFactory(create_mi_workflow, id=mi_workflow', title=Mi workflow')
Finalmente, dentro del script de instalacin del producto, se debe llamar a la funcin de creacin del workflow.Workflows en Plone 2.1
*
-
Creando Workflows en Plone 3.
Plone 3 tiene incluidos un conjunto de nuevos workflows:
Simple Publication Workflow.
Intranet/Extranet workflow.
Community workflow.
One state workflow.
Community Workflow for Folders
Intranet Workflow for Folders
Cada uno orientado a cumplir requerimientos especficos.Workflows en Plone 3
*
-
Creando Workflows en Plone 3.
Si se desean aadir otros workflows al sitio, existen cuatro mtodos principales :
Utilizando la interfaz de administracin de Zope (ZMI).
Con el producto collective.workflowed.
Usando el producto ArchGenXML.
Si se cuenta con un workflow definido en alguna versin de Plone 2.x, lo ms conveniente, es realizar la exportacin de este a un archivo .zexp desde el ZMI de esa versin de Plone, despus importar ese archivo al sitio existente en Plone 3.
Posteriormente, se exporta el paso de workflow tool de la configuracin del sitio, para obtener la definicin en formato XML y se coloca dentro de la carpeta profiles/default.Workflows en Plone 3
*
-
Creando Workflows en Plone 3.
Ahora se muestra el contenido de profiles/default/workflows.xml, el cual se utiliza para definir nuevos workflows dentro del sitio y de asociarlos a tipos de contenido especficos:
Contains workflow definitions for your portal
-
Creando Workflows en Plone 3.
Ahora se muestra el contenido de profiles/default/workflows.xml, el cual se utiliza para definir nuevos workflows dentro del sitio y de asociarlos a tipos de contenido especficos:
Contains workflow definitions for your portal
-
Creando Workflows en Plone 3.
Ahora se muestra el contenido de profiles/default/workflows.xml, el cual se utiliza para definir nuevos workflows dentro del sitio y de asociarlos a tipos de contenido especficos:
Contains workflow definitions for your portal
-
Creando Workflows en Plone 3.
Ahora se muestra el contenido de profiles/default/workflows.xml, el cual se utiliza para definir nuevos workflows dentro del sitio y de asociarlos a tipos de contenido especficos:
Contains workflow definitions for your portal
-
Creando Workflows en Plone 3.
A continuacin dentro de profiles/default/workflows/mi_workflow, creamos el archivo de definicin definition.xml, se muestran algunas partes de este archivo:
-
Creando Workflows en Plone 3.
A continuacin dentro de profiles/default/workflows/mi_workflow, creamos el archivo de definicin definition.xml, se muestran algunas partes de este archivo:
-
Creando Workflows en Plone 3.
A continuacin dentro de profiles/default/workflows/mi_workflow, creamos el archivo de definicin definition.xml, se muestran algunas partes de este archivo:
-
Creando Workflows en Plone 3.
-
Creando Workflows en Plone 3.
-
Creando Workflows en Plone 3.
-
Creando Workflows en Plone 3.
-
Creando Workflows en Plone 3.
-
Creando Workflows en Plone 3.
-
Creando Workflows en Plone 3.
-
Creando Workflows en Plone 3.
-
Creando Workflows en Plone 3.
Provides access to workflow history state_change/getHistory Request review Review portal content Workflows en Plone 3
*
-
Creando Workflows en Plone 3.
Provides access to workflow history state_change/getHistory Request review Review portal content Workflows en Plone 3
*
-
Creando Workflows en Plone 3.
Provides access to workflow history state_change/getHistory Request review Review portal content Workflows en Plone 3
*
-
Creando Workflows en Plone 3.
Provides access to workflow history state_change/getHistory Request review Review portal content Workflows en Plone 3
*
-
Creando Workflows en Plone 3.
Primero, definimos algunas propiedades del workflow, ID, nombre del estado inicial y nombre de la variable que almacena el estado actual (debe ser siempre review_state). A continuacin, enumeramos los permisos que se usarn.
Posteriormente, definimos los diversos estados y transiciones. Para cada estado, establecemos un conjunto de posibles transiciones de salida (exit transitions) que estarn disponibles en el men Estado, al igual que el mapeo de permisos en el estado particular.Las transiciones tienen un ID, un ttulo (title), el estado al cual llega (new_state) y un tipo de disparo (trigger), ya sea levantado por el usuario (USER) o automtico (AUTOMATIC). La etiqueta , contiene el nombre que se mostrar en el men Estado, y la URL que se llamar si el usuario elige esta transicin. Finalmente, establecemos los permisos guardia, si el usuario actual no tiene alguno de ellos, la transicin no estar disponible.
El cdigo omitido define otros estados, transiciones y mapeos de permisos, adems de algunas variables de workflow estndar (utilizadas para el historial del mismo).Workflows en Plone 3
*
-
Ejemplo: Workflow de solicitud del Instituto de Matemticas.Workflows
Solicitud no enviada
Solicitud enviada sin revisar
Solicitud Turnada al CI
Solicitud Aprobada
Solicitud Pendiente
Solicitud retirada
Enviar la solicitud
Recomienda aprobar
Recomienda revisar
Aprobar
Pendiente
Retirar
Retirar
Retirar
Retirar
Reenviar solicitud
*
-
Ejemplo: Workflow de solicitud del Instituto de Matemticas, mostrando los permisos.Workflows
Solicitante
Administrador de laComisin Especial
Miembro del Consejo Interno
Solicitud no enviada
Solicitud Pendiente
Solicitud retirada
Solicitud enviada sin revisar
Solicitud Turnada al CI
Solicitud Aprobada
Pblico
Enviarsolicitud
Reenviarsolicitud
Recomiendaaprobar
Recomiendarevisar
Aprobar
Retirar
Retirar
Retirar
Retirar
Pendiente
*
-
Andy McKay. The Definitive Guide to Plone. Apress, 2004. http://plone.org/documentation/manual/definitive-guide
Martin Aspeli. Professional Plone Development, Packt Publishing, Birmingham UK, September 2007.
Carlos de la Guardia. Editor grafico de workflows. http://plone.org/products/collective-workflowed
Documentacin de DCWorkflow. www.zope.org/Members/hathawsh/DCWorkflow_docs/default/DCWorkflow_doc.pdfDCWorkflow Dump. Herramienta que devuelve el cdigo Python de un workflow.http://plone.org/products/dcworkflowdumpDCWorkflow Graph. Visor grfico de workflows.http://plone.org/products/products-dcworkflowgraph
Especificacin de TALES expressions. http://wiki.zope.org/ZPT/TALES
Rman Joost. Diploma thesis. Feasibility Study on a Graphical Workflow Editor based on the Workflow Management System AlphaFlow, 2006. http://thesis.romanofski.de/index.htmlReferencias
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*