AnsweredAssumed Answered

Assigner à plusieurs acteurs pluieurs taches distinctes

Question asked by patricehadot on Feb 25, 2009
Bonsoir;

je souhaite assigner au lancement d'un workflow à plusieurs acteurs des taches distinctes (1 acteur par tache).

Dans l'exemple, j'ai une tache de validation, l'autre d'approbation. Je souhaiterais designer dés le départ l'approbateur et le valideur. Parmi les horreurs que j'ai essayé, j'ai tenté de doubler les <show-association name="bpm:assignee"/> dans le web-client-config-custom.xml et les <aspect>bpm:assignee</aspect> dans le workflowmodel.xml. Mais bien entendu, ça ne marche pas. Et qui plus est, cela aurait marché que j'aurais été bien embêté pour identifier le valideur de l'approbateur.
J'ai épluché sans succès les wiki anglophones/francophones, et le tutoriel de Jeff Potts, mais je n'ai pas trouvé mon bonheur.

Pour infos, mon workflow, simplifié à l'extrême, ressemblerait à ça :

Definition du workflow
<?xml version="1.0" encoding="UTF-8"?>

<process-definition xmlns="urn:jbpm.org:jpdl-3.2"
   name="bgwf:ValidApprob">

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

   <start-state name="start">
      <task name="bgwf:declencherWF" swimlane="initiator" />
      <transition to="Valider"></transition>
   </start-state>

   <swimlane name="valideur">
      <assignment class="org.alfresco.repo.workflow.jbpm.AlfrescoAssignment">
         <actor>#{bpm_assignee}</actor>
      </assignment>
   </swimlane>

   <task-node name="Valider">
      <task name="bgwf:validation" swimlane="valideur" />
      <event type="task-create"/>
      <transition to="end" name="reject"></transition>
      <transition to="Approuver" name="approve"></transition>
   </task-node>

   <swimlane name="approbateur">
      <assignment class="org.alfresco.repo.workflow.jbpm.AlfrescoAssignment">
         <actor>#{bpm_assignee}</actor>
      </assignment>
   </swimlane>

   <task-node name="Approuver">
      <task name="bgwf:approbation" swimlane="approbateur" />
      <transition to="end" name="approve"></transition>
      <transition to="end" name="reject"></transition>
   </task-node>

   <end-state name="end"></end-state>


</process-definition>

bgWorkFlowModel.xml
<?xml version="1.0" encoding="UTF-8"?>
<!– Definition of new Model –>
<model name="bgwf:workflowmodel"
       xmlns="http://www.alfresco.org/model/dictionary/1.0">
 
  <!– Optional meta-data about the model –>
  <description>EIVBG Workflow Model</description>
  <author>P. HADOT</author>
  <version>1.0</version>
 
  <!– Imports are required to allow references to definitions in other models –>
  <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" />
  </imports>
 
  <!– Introduction of new namespaces defined by this model –>
  <namespaces>
    <namespace uri="http://www.eivbg.com/model/workflow/1.0"
          prefix="bgwf" />
  </namespaces>
 
  <types>
   
    <type name="bgwf:declencherWF">
      <parent>bpm:startTask</parent>
      <mandatory-aspects>
   <aspect>bpm:assignee</aspect>
      </mandatory-aspects> 
    </type>
   
    <type name="bgwf:validation">
      <parent>bpm:workflowTask</parent>
      <overrides>
   <property name="bpm:packageItemActionGroup">
     <default>read_package_item_actions</default>
   </property>
      </overrides>
    </type>
   
    <type name="bgwf:approbation">
      <parent>bpm:workflowTask</parent>
      <overrides>
   <property name="bpm:packageItemActionGroup">
     <default>read_package_item_actions</default>
   </property>
      </overrides>
    </type>
  </types>
</model>

web-client-client-config-custom.xml
 <!– L'affichage du workflow –>
  <config evaluator="node-type" condition="bgwf:declencherWF" replace="true">
    <property-sheet>
      <separator name="sep1" display-label-id="general" component-generator="HeaderSeparatorGenerator" />
      <show-property name="bpm:workflowDescription" component-generator="TextAreaGenerator" />
      <separator name="sep2" display-label-id="users_and_roles" component-generator="HeaderSeparatorGenerator" />
      <show-association name="bpm:assignee"/>
    </property-sheet>
   
  </config>
  <config evaluator="node-type" condition="bgwf:approbation" replace="true">
    <property-sheet>
      <separator name="sep1" display-label-id="general" component-generator="HeaderSeparatorGenerator" />
      <show-property name="bpm:description" component-generator="TextAreaGenerator" read-only="true"/>
      <show-property name="bpm:comment" component-generator="TextAreaGenerator" />     
    </property-sheet>
   
  </config>
  <config evaluator="node-type" condition="bgwf:validation" replace="true">
    <property-sheet>
      <separator name="sep1" display-label-id="general" component-generator="HeaderSeparatorGenerator" />
      <show-property name="bpm:description" component-generator="TextAreaGenerator" read-only="true"/>
      <show-property name="bpm:comment" component-generator="TextAreaGenerator" />      
    </property-sheet>
  </config>


Avez vous des idées ou des pointeurs à partager sur le sujet ?

Outcomes