AnsweredAssumed Answered

obtener nombre de usuario

Question asked by giorgio on Jun 2, 2009
Latest reply on Jun 8, 2009 by giorgio
Buenas, estoy modificando una propiedad de los documentos de un workflow, ejecutando codigo desde el process_definition.xml, y en el caso de los workflows para grupos de tipo pooled, no tengo problemas para conseguir el nombre de grupo, pero me ocurre que necesito que cuando un usuario tome posesión del workflow poder conseguir el nombre de ese usuario para modificar la propiedad, como podria hacerlo?

os pongo el codigo que ejecuto para conseguir el nombre de grupo, en el review_pooled_processdefinition.xml

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

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

    <swimlane name="initiator" />

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

    <swimlane name="reviewer">
        <assignment class="org.alfresco.repo.workflow.jbpm.AlfrescoAssignment">
            <pooledactors>#{bpm_groupAssignee}</pooledactors>
        </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>
            <event type="task-end">
               <action class="org.alfresco.repo.workflow.jbpm.AlfrescoJavaScript">
                  <script>
                     <variable name="bpm_assignee" access="write"/>
                     <expression>
                        if (taskInstance.actorId != null)
                           people.getPerson(taskInstance.actorId);
                        else
                           person;
                     </expression>
                  </script>
               </action>
            </event>
        </task>
        <transition name="" to="completed" />
    <event type="node-enter">
<!– Update the status to Rejected when we enter this task –>
<action class="org.alfresco.repo.workflow.jbpm.AlfrescoJavaScript">
<script>
for (var i = 0; i &lt; bpm_package.children.length; i++)
{

bpm_package.children.properties["my:prioridad"] = bpm_workflowPriority;
bpm_package.children.properties["my:estado"] = "Pendiente";
//con esta linea obtengo el grupo, pero en que momento podria obtener el usuario?
bpm_package.children.properties["my:tecnico"] = bpm_groupAssignee.properties["usr:authorityName"];
bpm_package.children.save();
}
</script>
</action>
</event>
    </task-node>



    <task-node name="completed">
    <event type="node-enter">
<!– Update the status to Aproved when we enter this task –>
<action class="org.alfresco.repo.workflow.jbpm.AlfrescoJavaScript">
<script>
for (var a = 0; a &lt; bpm_package.children.length; a++)
{
bpm_package.children[a].properties["my:prioridad"] = bpm_workflowPriority;
bpm_package.children[a].properties["my:estado"] = "Acabado";
bpm_package.children[a].properties["my:tecnico"] = bpm_groupAssignee.properties["usr:authorityName"];
bpm_package.children[a].save();
}
</script>
</action>
</event>
        <transition name="" to="end" />
    </task-node>

    <end-state name="end" />

</process-definition>


Espero que alguien pueda ayudarme.

Saludos y gracias de antemano

Outcomes