workflows en plone

Download Workflows en Plone

If you can't read please download the document

Upload: laloea

Post on 14-Apr-2017

958 views

Category:

Technology


0 download

TRANSCRIPT

  • 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

    *

    *

    *

    *

    *

    *

    *

    *

    *

    *

    *

    *

    *

    *

    *

    *

    *

    *

    *

    *

    *

    *

    *

    *

    *

    *

    *

    *

    *

    *

    *

    *

    *

    *

    *

    *

    *

    *

    *

    *

    *