AnsweredAssumed Answered

Problema workflow con asignación dinámica

Question asked by amatute on Feb 8, 2011
Buenos días,
Tengo un problema con la asignación de tareas en un workflow.
En mi workflow la tarea inicial llega a un grupo de usuarios, y lo que pretendo es que cuando un usuario abra esta tarea y pulse el botón para pasar a la siguiente tarea, ésta salga del pool del grupo y se asigne únicamente al usuario que inició la transición.
La forma en que lo he implementado es la siguiente:
- Tengo el siguiente swimlane:
   <swimlane name="actual">
      <assignment
         class="org.alfresco.repo.workflow.jbpm.AlfrescoAssignment">
         <actor>#{people.getPerson(wf4_NextParticipant).properties["cm:userName"]}</actor>
      </assignment>
   </swimlane>
- Y en la transición hago ésto para asignar la persona a la variable 'wf4_NextParticipant':
      <transition to="Motivo Rechazo RI" name="rechazar">
            <action class="org.alfresco.repo.workflow.jbpm.AlfrescoJavaScript">
              <script>
                 <variable name="wf4_NextParticipant" access="read,write"/>
                 <expression>
                    logger.log("Transicion - Motivo Rechazo RI");
               var currentUser = (person.properties["userName"]);
                                wf4_NextParticipant = currentUser;               
                 </expression>
              </script>
            </action>
      </transition>
- La tarea siguiente 'Motivo Rechazo RI', obviamente tiene como swimlane 'actual'

El comportamiento que estoy teniendo es este: cuando se lanza el workflow por primera vez, llega la primera tarea al grupo de usuarios. Un usuario del grupo, pongamos usuario A abre la tarea y pulsa en la transición y la siguiente tarea  pasa a ser propiedad únicamente de éste usuario. En ésta segunda tarea, hay dos opciones, seguir para adelante o volver para atrás. Si el usuario decide volver para atrás, se lanza la primera tarea de nuevo y vuelve al pool del grupo. Ahora bien, y aquí es donde tengo el problema, si ahora en lugar de ser el usuario A quien abre la primera tarea es otro usuario (B), cuando éste usuario pulsa en la transición a la siguiente tarea, ésta se asigna al usuario A, en lugar de a éste último usuario que es quién realidad se está capturando en el script de la transición.

No se si he conseguido explicarme bien… alguien podría ayudarme o darme alguna pista de por qué me sucede ésto??

Muchas gracias!

Outcomes