cancel
Showing results for 
Search instead for 
Did you mean: 

obtener nombre de usuario

giorgio
Champ in-the-making
Champ in-the-making
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 5

pjcaracuel_2349
Confirmed Champ
Confirmed Champ
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
Champ in-the-making
Champ in-the-making
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
Confirmed Champ
Confirmed Champ
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
Champ in-the-making
Champ in-the-making
Te habia contestado en el otro hilo


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

Saludos.

giorgio
Champ in-the-making
Champ in-the-making
Buenas la solución aunque a medias, esta autocontestada aqui

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

un saludos
Getting started

Tags


Find what you came for

We want to make your experience in Hyland Connect as valuable as possible, so we put together some helpful links.