cancel
Showing results for 
Search instead for 
Did you mean: 

propiedad status siempre a completed

giorgio
Champ in-the-making
Champ in-the-making
Buenas, estoy ejecutando estos códigos en mi review_processdefinition.xml

<?xml version="1.0" encoding="UTF-8"?>

<process-definition xmlns="urn:jbpm.org:jpdl-3.1" name="wf:review">

    <swimlane name="initiator" />

    <start-state name="start">
        <task name="wf:submitReviewTask" swimlane="initiator" />
        <transition name="" to="review" />
    </start-state>

    <swimlane name="reviewer">
        <assignment class="org.alfresco.repo.workflow.jbpm.AlfrescoAssignment">
            <actor>#{bpm_assignee}</actor>
        </assignment>   
    </swimlane>

    <task-node name="review">
        <task name="wf:reviewTask" swimlane="reviewer">
            <event type="task-create">
                <script>
                    if (bpm_workflowDueDate != void) taskInstance.dueDate = bpm_workflowDueDate;
                    if (bpm_workflowPriority != void) taskInstance.priority = bpm_workflowPriority;
                </script>   
            </event>
        </task>
       <transition name="reject" to="rejected" />
        <transition name="approve" to="approved" />
    <event type="node-enter">
<!– Update the status to Rejected when we enter this task –>
<action class="org.alfresco.repo.workflow.jbpm.AlfrescoJavaScript">
<script>

bpm_package.children[0].properties["mySmiley Tonguerioridad"] = bpm_workflowPriority;
bpm_package.children[0].properties["my:estado"] = bpm_status;
bpm_package.children[0].properties["my:tecnico"] = bpm_assignee.properties["cm:userName"];
bpm_package.children[0].save();


           var mail = actions.create("mail");
           mail.parameters.to = bpm_assignee.properties["cm:email"];
           mail.parameters.subject = "Notificacion de tarea asignada" + bpm_workflowDescription;
           mail.parameters.from = "noreply@edu.gva.es";
           mail.parameters.text = "No responda a este mensaje.La tarea "+ bpm_workflowDescription +" le ha sido ASIGNADA";
           mail.execute(bpm_package);

</script>
</action>
</event>

    </task-node>

    <task-node name="rejected">
    <event type="node-enter">
<!– Update the status to Rejected when we enter this task –>
<action class="org.alfresco.repo.workflow.jbpm.AlfrescoJavaScript">
<script>

bpm_package.children[0].properties["mySmiley Tonguerioridad"] = bpm_workflowPriority;
bpm_package.children[0].properties["my:estado"] = bpm_status;
bpm_package.children[0].properties["my:tecnico"] = bpm_assignee.properties["cm:userName"];
bpm_package.children[0].save();


           var mail = actions.create("mail");
           mail.parameters.to = initiator.properties["cm:email"];
           mail.parameters.subject = "Notificacion de Tarea" + bpm_workflowDescription;
           mail.parameters.from = "noreply@edu.gva.es";
           mail.parameters.text = "No responda a este mensaje.La tarea "+ bpm_workflowDescription +" ha sido RECHAZADA";
           mail.execute(bpm_package);

</script>
</action>
</event>
        <task name="wf:rejectedTask" swimlane="initiator" />
        <transition name="" to="end" />
    </task-node>

    <task-node name="approved">
    <event type="node-enter">
<!– Update the status to Rejected when we enter this task –>
<action class="org.alfresco.repo.workflow.jbpm.AlfrescoJavaScript">
<script>

bpm_package.children[0].properties["mySmiley Tonguerioridad"] = bpm_workflowPriority;
bpm_package.children[0].properties["my:estado"] = bpm_status;
bpm_package.children[0].properties["my:tecnico"] = bpm_assignee.properties["cm:userName"];
bpm_package.children[0].save();


           var mail = actions.create("mail");
           mail.parameters.to = initiator.properties["cm:email"];
           mail.parameters.subject = "Notificacion de Tarea" + bpm_workflowDescription;
           mail.parameters.from = "noreply@edu.gva.es";
           mail.parameters.text = "No responda a este mensaje.La tarea "+ bpm_workflowDescription +" ha sido APROBADA";
           mail.execute(bpm_package);

</script>
</action>
</event>

       
        <transition name="" to="end" />
    </task-node>

    <end-state name="end" />

</process-definition>

como se puede ver lo que hago es asignar propiedades del workflow a metadatos definidos en un tipo de contenido .

El problema que tengo es que me he dado cuenta que sea en el momento que sea de la tarea donde esté cambiando la propiedad status
el valor que se le asigna siempre al archivo es completed
es decir que aunque la tarea todavia ni si kiera haya sido aprobada, ni haya sido modificado su estado, el fichero ya aparece con el metadato status con el valor completed.

Alguien sabe decirme porque puede ser esto?

Gracias y saludos.
15 REPLIES 15

the-dinner
Champ in-the-making
Champ in-the-making
Hola!

Hay alguna forma de listar todas las tareas, de todos los workflow?

Estoy tratando hacerlo desde un bean, pero no logro traerlos todos.

Pues veo que en WorkflowTaskQuery, tiene inicializado la variable WorkflowTaskStatus y Active.

envio desde mi bean, para cambiar esas dos variables pero lo mas que logro es traer son.
WorkflowTaskStatus.COMPLETED
Active = FALSE

pero tengo tareas en
WorkflowTaskStatus.IN_PROGRESS
Active = TRUE

y tambien en
WorkflowTaskStatus.COMPLETED
Active = TRUE

Es posible traer todas estas combinaciones en uno solo?

unknown-user
Champ on-the-rise
Champ on-the-rise
Hola Giorgio y Pedro,

¿Podéis confirmarme que funciona el envío de correo mediante la introducción del script (mail.execute) en el XML de definición?
Estoy introduciendo el siguiente código en adhoc_processdefinition.xml.

                  var mail = actions.create("mail");
                  mail.parameters.to = initiator.properties.email;
                  mail.parameters.subject = "Tarea ASIGNADA: "+bpm_workflowDescription;
                  mail.parameters.from = bpm_assignee.properties.email;
                  mail.parameters.text = "Tiene una nueva tarea ASIGNADA: "+bpm_workflowDescription;
                  mail.execute(bpm_package);
Giorgio, estoy intentando enviar un email a la vez que se envía la tarea adhoc con un código muy parecido al tuyo pero no consigo que se envíe el correo electrónico.
De hecho, si selecciono la opción "Notify me" sí que me llega el correo al terminar la tarea por lo que el servidor está bien configurado. Alfresco lo codifica en el mismo fichero así:


      <transition name="" to="completed">
         <action class="org.alfresco.repo.workflow.jbpm.AlfrescoJavaScript">
           <script>
              if (wf_notifyMe)
              {
                 var mail = actions.create("mail");
                 mail.parameters.to = initiator.properties.email;
                 mail.parameters.subject = "Adhoc Task " + bpm_workflowDescription;
                 mail.parameters.from = bpm_assignee.properties.email;
                 mail.parameters.text = "It's done";
                 mail.execute(bpm_package);

}
           </script>
         </action>
      </transition>

Muchas gracias por vuestra ayuda.

Saludos,

giorgio
Champ in-the-making
Champ in-the-making
Hola,  has hecho el deploy del ad hoc?, si no te da ningun error quizá sea por esto, debes hacer deploy del process definition en la consola de workflows cada vez que cambies algo en estos ficheros.

saludos.

unknown-user
Champ on-the-rise
Champ on-the-rise
Hola Giorgio,

Sí, me faltaba hacer el deploy y una vez hecho, me costó que actualizara los campos un buen rato. No sé si se estaba quedando algo en caché pero ahora funciona perfectamente.

Muchísimas gracias.

unknown-user
Champ on-the-rise
Champ on-the-rise
Me faltaba por comentarte que modifiqué una linea del fichero bootstrap-context.xml

        <bean id="workflowBootstrap" parent="workflowDeployer">
            <property name="workflowDefinitions">
                <list>
                    <props>
                        <prop key="engineId">jbpm</prop>
                        <prop key="location">alfresco/workflow/review_processdefinition.xml</prop>
                        <prop key="mimetype">text/xml</prop>
                        <prop key="redeploy">true</prop> <<<<<<
                    </props>

Gracias por tu post

the-dinner
Champ in-the-making
Champ in-the-making
Hola, buenos dias!

Mi problema con la consulta de los workfow
es que ahora estoy intentando ejecutar un query donde me traiga las tareas creadas en una fecha.
e intentado con esto

SimpleDateFormat simpleDateFormatLog = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String strDateFrom = simpleDateFormatLog.format(dateFrom);

Map<QName, Object> taskCustomProps = new HashMap<QName, Object>();
taskCustomProps.put(ContentModel.PROP_CREATED, strDateFrom);

wfQuery.setTaskCustomProps(taskCustomProps);


pero no logro que me traiga nada.
no se como enviarle al query, se lo enviado con la fecha, con el format
como pueden ver, y nada siempre trae vacia la consulta.