AnsweredAssumed Answered

Afficher le nom de l'initiateur du workflow dans un dashlet

Question asked by debouya on Jul 20, 2010
Bonjour à tous ,

je voudrais personnaliser le tableau de bord «<dossier_installation>/tomcat/webapps/alfresco/jsp/workflow/tasks-todo-dashlet.jsp», en ajoutant un champ affichant l'initiateur du workflow.
Pour ce faire , j'ai crée une variable  pg:gestionnaire afin de récupérer le nom de l'initiateur du workflow
testModel.xml
<imports>
      <import uri="http://www.alfresco.org/model/dictionary/1.0" prefix="d" />
      <import uri="http://www.alfresco.org/model/bpm/1.0" prefix="bpm" />
      <import uri="http://www.alfresco.org/model/workflow/1.0" prefix="wf" />
   </imports>
   <namespaces>
        <namespace uri="pg.model" prefix="pg" />
    </namespaces>
   <types>
      <type name="pg:mySubmitReviewTask">
          <parent>bpm:startTask</parent>
                          <properties>
                <property name="pg:toto">
                    <type>d:text</type> 
                </property>
             </properties>
               <mandatory-aspects> 
      <aspect>pg:nomAgent</aspect>
      <aspect>pg:gestionnaire</aspect>
       </mandatory-aspects>
      </type>
    ….
   ….
   ….
   </types>
   <aspects>
       <aspect name="pg:nomAgent">
       <title> Non de l'agent </title>
       <properties>
          <property name="pg:nomAgent">
            <type>d:text</type>
          </property>
       </properties>
         </aspect>
      <aspect name="pg:gestionnaire">
         <title> Non du gestionnaire</title>
       <properties>
          <property name="pg:gestionnaire">
            <type>d:text</type>
          </property>
       </properties>
         </aspect>
   </aspects>
</model>
ensuite je récupère le nom de l'initiateur de la façon suivante :

test_processdefinition.xml
<?xml version="1.0" encoding="UTF-8"?>
<process-definition xmlns="urn:jbpm.org:jpdl-3.1" name="pg:myReviewAndApprove">

   <swimlane name="initiator" />
   …
   …
   …
   

<start-state name="start">
      <task name="pg:mySubmitReviewTask" swimlane="initiator">
         <event type="task-create">
       <action class="org.alfresco.repo.workflow.jbpm.AlfrescoJavaScript">
         <script>
             <expression>
                pg_gestionnaire =initiator.properties["cm:firstName"];
                logger.log("***************  pg_gestionnaire  *************** "+ pg_gestionnaire );
             </expression>                            
            </script>
               <controller>
                  <variable name="pg_gestionnaire" access="write" mapped-name="pg_gestionnaire" /> 
               </controller>
              </action>  
          </event>
        </task>
      <transition name="evaluation_resp" to="rep_review" /> 
   </start-state>

jusqu' ici tout se passe bien , j'arrive a afficher le nom de l'initiateur dans le log.

Par contre au niveau du dashlet rien ne s'affiche.
Voici le code :
<a:richList id="tasks-active-list" viewMode="details" value="#{WorkflowBean.allActiveTasks}" var="r"
styleClass="recordSet" headerStyleClass="recordSetHeader" rowStyleClass="recordSetRow"
altRowStyleClass="recordSetRowAlt" width="100%" pageSize="10"
initialSortColumn="created" initialSortDescending="true"
rendered="#{not empty WorkflowBean.allActiveTasks}" refreshOnBind="true">
<%– nomAgent column –%>
<a:column id="col1" style="padding:2px;text-align:left">
   <f:facet name="header">
      <a:sortLink id="col1-sort" label="nom de dossier" value="pg:nomAgent" styleClass="header"/>
   </f:facet>
      <h:outputText id="col1-txt" value="#{r['pg:nomAgent']}">
   </h:outputText>
</a:column>
<%– gestionnaire  –%>
<a:column id="col2" style="padding:2px;text-align:left">
   <f:facet name="header">
      <a:sortLink id="col2-sort" label="gestionnaire" value="pg:gestionnaire" styleClass="header"/>
   </f:facet>
   <h:outputText id="col2-txt" value="#{r['pg:gestionnaire']}" />
</a:column>
   …
   …
   …
<a:dataPager styleClass="pager" />
</a:richList>

quelqu'un aurait une idée ?
merci d'avance

Outcomes