AnsweredAssumed Answered

ottenere lo username dell'utente che esegue un task di un wf

Question asked by xena on Nov 11, 2010
Latest reply on Dec 15, 2010 by izio
Ciao a tutti.
Ho creato un workflow il cui task di approvazione è assegnato al gruppo "approvers" che sono i Project Manager.
Inoltre ho creato un aspect "utente" che dovrebbe visualizzare il nomeutente del project manager che ha preso in consegna il task di approvazione. Come posso fare? Questo è il codice in questione:

   
<swimlane name="approvers">
           <assignment class="org.alfresco.repo.workflow.jbpm.AlfrescoAssignment">
                  <pooledactors>#{people.getGroup('GROUP_ProjectManager')}
      </pooledactors>
   </assignment>
   </swimlane>


<task-node name="Validazione">
   <event type="node-enter">
           <action class="org.alfresco.repo.workflow.jbpm.AlfrescoJavaScript">
               <runas>admin</runas>
               <script>
                   for (var i = 0; i &lt; bpm_package.children.length; i++)
                   {
                      bpm_package.children[i].properties["wfpm:status"] = "Verificato";
                      bpm_package.children[i].save();
                   }
               </script>
           </action>
       </event>
         <event type="node-leave">
           <action class="org.alfresco.repo.workflow.jbpm.AlfrescoJavaScript">
             <runas>admin</runas>
               <script>
                   for (var i = 0; i &lt; bpm_package.children.length; i++)
                   {
                          if (!bpm_package.children[i].hasAspect("wfpm:utente"))
                      {
                         bpm_package.children[i].addAspect("wfpm:utente");
                      }
                   }
                    </script>
           </action>
       </event>
      <transition to="Rifiutato" name="Rifiuta"></transition>
      <transition to="Validato" name="Valida"></transition>
         <task name="wfpm:validazioneTask" swimlane="approvers" />
   </task-node>

<task-node name="Validato">
     <event type="node-enter">
           <action class="org.alfresco.repo.workflow.jbpm.AlfrescoJavaScript">
               <runas>admin</runas>
                <script>
                   //prima prova effettuata
                   //var utente=people.getPerson(people.getGroup('GROUP_ProjectManager'))).properties.userName;

                    //seconda prova
                        var utente=people.getPerson(approvers).properties.userName;


                    for (var i = 0; i &lt; bpm_package.children.length; i++)
                   {
                       bpm_package.children[i].properties["wfpm:utente"] = utente;
                      bpm_package.children[i].properties["wfpm:status"] = "Validato";
                      bpm_package.children[i].save();
                   }
                </script>
           </action>
       </event>
   <task name="wfpm:ValidatoTask" swimlane="initiator" />
<transition to="End" name="termina"></transition>
</task-node>
Quando clicco, durante il tak di validazione, il bottone "Valida",
nel primo caso mi dà l'errore:  TypeError: Cannot read property "properties" from null (AlfrescoJS#1)
nel secondo caso l'errore è: ReferenceError: "approvers" is not defined. (AlfrescoJS#1)
Qualche suggerimento???

Outcomes