AnsweredAssumed Answered

Problème sur aspect optionnel dans un Workfl avancé [Résolu]

Question asked by huberd on Apr 22, 2008
Latest reply on Apr 24, 2008 by huberd
Bonjour,

j'ai défini dans mon workflow la possibilité de définir ou non une liste de relecteurs grâce à l'aspect suivant :

   <aspects>
      <aspect name="lwf:reviewAssignees">
         <associations>
            <association name="lwf:reviewAssignees">
               <source>
                  <mandatory>false</mandatory>
                  <many>false</many>
               </source>
               <target>
                  <class>cm:person</class>
                  <!–mandatory>true</mandatory–>
                  <mandatory>false</mandatory>
                  <many>true</many>
               </target>
            </association>
         </associations>
      </aspect>

En rendant la possibilité de renseigner cet aspect optionnel grâce à la ligne <mandatory>false</mandatory>, je cherche la méthode Java ou Javascript à integerer dans mon workflow qui me permettra de tester l'existance ou non de la variable lwf_reviewAssignees issue de l'aspect lwf:reviewAssignees. Suite à l'existance ou non de cette variable, je pourrai orienter mon workflow vers une étape de relecture ou directement vers l'approbation.

Pour info voici l'écran pricipal de choix de mon workflow.

   <config evaluator="node-type" condition="lwf:submitReviewAndApprovalTask" replace="true">
      <property-sheet>
         <separator name="sep1" display-label-id="general" component-generator="HeaderSeparatorGenerator" />
         <show-property name="bpm:workflowDescription" component-generator="TextAreaGenerator" />
         <show-property name="bpm:workflowPriority" display-label-id="wf_review_priority" />
         <separator name="sep2" display-label-id="users_and_roles" component-generator="HeaderSeparatorGenerator" />
         <show-association name="lwf:reviewAssignees" display-label-id="lwf_reviewers" />
         <separator name="sep3" display-label-id="lwf_review_options" component-generator="HeaderSeparatorGenerator" />
         <show-property name="lwf:requiredReviewPercent" />
      </property-sheet>
   </config>

et voici la partie concernée de mon workflow

   <!–**************************–> 
   <!–**    <Start State>     **–>
   <!–**        start         **–>
   <!–**************************–> 
   <start-state name="start">
      <task name="lwf:submitReviewAndApprovalTask" swimlane="initiator" />
      <event type="node-leave">
         <action class="lpr.alfresco.repo.workflow.jbpm.WriteInfo">
            <type>Start State</type>
            <name>start</name>
            <disable>false</disable>
         </action>
        
         <!– Remove all currents Permissions –>
         <action class="lpr.alfresco.repo.workflow.jbpm.SetPermissions">
            <permission>remove</permission>
         </action>
          
         <!– … –>
                  
      </event>
      <transition name="" to="checkreview"/>
   </start-state>
  
  
   <!–**************************–>
   <!–**      <Decision>      **–>
   <!–**     checkreview      **–>
   <!–**************************–>
   <decision name="checkreview">
      <event type="node-enter">
        <action class="lpr.alfresco.repo.workflow.jbpm.WriteInfo">
            <type>Decision</type>
            <name>checkreview</name>
            <disable>false</disable>
         </action>
      </event>
      <transition name="" to="startreview">
             // ICI la condition qui permet de détécter que l'aspect lwf:reviewAssignees a bien été
             // renseigné ou que la variable lwf_reviewAssignees est non nul ou tout simplement
             // qu'elle existe.
      </transition>     
      <transition name="" to="startapproval"/>
   </decision>

Merci pour vote aide précieuse.

Outcomes