Alfresco Workflow Avanzados sobre espacios (folders)

or defecto en Alfresco no se pueden iniciar Workflows Avanzados sobre espacios.

Pero sí se pueden iniciar a través de un script.

Solamente hay que ejecutar este script sobre el espacio

var workflow = actions.create("start-workflow");
workflow.parameters.workflowName = "jbpm$minameserver:miworkflowProcess";
workflow.parameters["bpm:workflowDescription"] = document.name;
workflow.parameters["bpm:assignee"] = person;
var futureDate = new Date();
futureDate.setDate(futureDate.getDate() + 7);
workflow.parameters["bpm:workflowDueDate"] = futureDate;
workflow.execute(document);
 

Actualmente las propiedades de workflow no van a contener a este espacio como datos adjuntos y aparecerá como vacío.

  • Si queremos ejecutar el script ya se hace de la manera habitual

Primero hay que crearlo en
Empresa > Diccionario de datos > Scripts
con el nombre por ejemplo de startWorkflow.js

Después para ejecutarlo se puede hacer de varias maneras, las más habituales son:

  1. Ejecutar el script como acción sobre un elemento. Se accede desde Propiedades del elemento.
  2. Crear una regla para que se ejecute el script cada vez que se cree este espacio

Si al final no era tan difícil… 😉

Fuente: http://wiki.alfresco.com/wiki/WorkflowAdministration#Step_7:_Integration_with_Rules_.28Optional.29

Anuncios

Acerca de Antonio de la Torre
Developer & Agile Instigator, Codesai, ex-Kaleidos, in Oviedo, Spain

7 Responses to Alfresco Workflow Avanzados sobre espacios (folders)

  1. AM says:

    Hola,
    He seguido tus indicaciones y asi no consigues nada, es decir, creas el workflow avanzado, pero no le asignas el espacio, el workflow no queda asociado a ningun recurso.

    Era eso lo que querías hacer? o es que falta algo en la explicación?

  2. antondelatorre says:

    Hola,
    Sí que está el recurso de tipo folder, (espacio, space) asociado, pero no aparece en los detalles del workflow.
    Esto es porque en alfresco-web-client.jar, en la clase org/alfresco/web/bean/workflow/ManageTaskDialog.java no permite que se muestren los recursos tipo ‘folder’

    Si abres los fuentes y buscas este fichero, en la línea 716, verás este comentario

    // NOTE: folders within workflow packages are ignored for now
    if (this.dictionaryService.isSubClass(type, ContentModel.TYPE_CONTENT) ||
    ApplicationModel.TYPE_FILELINK.equals(type))
    {

    Puedes probar a descomentarlo y verás como funciona y ves los espacios, pero el enlace falla.
    Pero eso ya es de otro post.

  3. Pingback: Cómo visualizar recursos de tipo espacio en workflows avanzados « Al final, era una tontería

  4. Raul says:

    Hola,

    Estoy intentando ejecutar un workflow avanzado con el script siguiendo un poco el ejemplo que aparece en la wiki de Alfresco y me da el siguiente error:

    No se ha podido crear la acción debido a un error: Failed to execute script ‘workspace://SpacesStore/a2f35811-99e5-11dd-bba0-89b364386eb7’: Failed to execute script ‘workspace://SpacesStore/a2f35811-99e5-11dd-bba0-89b364386eb7’: Wrapped java.lang.NullPointerException (AlfrescoScript#8)

    Me podeis ayudar?

    Saludos.

  5. eraunatonteria says:

    Hola Raul:
    Esto que cuentas es un error en tiempo de ejecución de tu script (que tiene la ulr ‘workspace://SpacesStore/a2f35811-99e5-11dd-bba0-89b364386eb7′, exactamente además en la línea 8 (AlfrescoScript#8)
    Debido a un java.lang.NullPointerException

    Seguramente estás usando una variable sin inicializar.

    Un saludo,

    Antonio

  6. giorgio says:

    Buenas, yo tambien he tenido esa excepción de null, que comenta RAUL, y al parecer es la ultima linea, la de workflow.execute(document), porque como bien comentas parece que no se inicializa en ningun sitio, pero la idea es que coga como document, el documento, sea fichero o sea espacio, que este subiendo en ese momento al espacio que tiene la regla no?, de que manera se le puede decir que coga ese documento?
    Gracias y saludos

  7. giorgio says:

    Buenas, quisiera saber, como puedo ejecutar codigo dentro de un workflow pero una vez reasignado, en la creación del workflow ya he conseguido hacerlo, y en los pasos de aprovar o rechazar tambien, pero no se donde tengo que poner el codigo para poder ejecutarlo cuando se reasigna a otra persona el workflow.

    Saludos , espero puedan ayudarme.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: