obtener nombre de usuario

cancel
Showing results for 
Search instead for 
Did you mean: 
giorgio
Member II

obtener nombre de usuario

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["mySmiley Tonguerioridad"] = 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["mySmiley Tonguerioridad"] = 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
5 Replies
pjcaracuel_2349
Active Member II

Re: obtener nombre de usuario

Buenas,

No se si habras mirado ya estas opciones:

var previousActor = search.luceneSearch("@cm\\:userName:\"" + taskInstance.previousActorId + "\"");
var actor = search.luceneSearch("@cm\\:userName:\"" + taskInstance.actorId + "\"");

Luego a partir del objeto actor, instancias lo que necesites.

Si ya lo has probado seguimos mirando mas opciones.

Saludos
giorgio
Member II

Re: obtener nombre de usuario

De esta manera casca.
yo habia probado algo parecido pero sin lucene.
habia probado a asignar esto:

taskInstance.ActorId a piñon pero tambien peta dice que no esta definido.

ReferenceError: "taskInstance" is not defined
pjcaracuel_2349
Active Member II

Re: obtener nombre de usuario

Este error es tipico de que por la razon que sea, no esta "viendo" la variable, algo del ambito de existencia de la variable o asi, mira por ese camino

Saludos
giorgio
Member II

Re: obtener nombre de usuario

Te habia contestado en el otro hilo


http://forums.alfresco.com/es/viewtopic.php?f=11&t=1666

Saludos.
giorgio
Member II

Re: obtener nombre de usuario

Buenas la solución aunque a medias, esta autocontestada aqui

http://forums.alfresco.com/es/viewtopic.php?f=11&t=1668

un saludos