cancel
Showing results for 
Search instead for 
Did you mean: 

how to assign two different assignees to different tasks?

targa2000
Champ in-the-making
Champ in-the-making
defining a custom advanced workflow, looking at the Workflow Lifecycle Sample:

http://wiki.alfresco.com/wiki/WorkflowSample_Lifecycle

This code here seems to assign the task to an assignee:

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

I want to put in a second task that is assigned to a different assignee.  How would I do this?
13 REPLIES 13

sgartner
Champ on-the-rise
Champ on-the-rise
<swimlane name="assigneeone">
      <assignment class="org.alfresco.repo.workflow.jbpm.AlfrescoAssignment">
         <actor>#{my:t1Assignee}</actor>
      </assignment>
   </swimlane>

   <swimlane name="assigneetwo">
      <assignment class="org.alfresco.repo.workflow.jbpm.AlfrescoAssignment">
         <actor>#{my:t2Assignee}</actor>
      </assignment>
   </swimlane>
Hi Targa,

I'm just learning this stuff too, but using a colon in those doesn't seem correct.  Just like you wouldn't put #{bpm:assignee} in there you would put #{bpm_assignee}, so I believe you should put #{my_t1Assignee} and #{my_t2Assignee} in there:


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

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

evan
Champ in-the-making
Champ in-the-making
Hi All,

    In first ,thanks for targa2000 sample.  Based on the example you provided,I have imitated an advanced workflow which runs through smoothly. Yet there's a problem there: under the " General " section,user can fill out relevant information like Description in frame box at the first step, but when it comes to the second step, there's no any frame box  is displayed for the user to fill out nor any information is shown up under this section.The same problem repeats at the following steps. Pls help to resolve this problem.Below are the codes:

helloworld_processdefinition.xml

<?xml version="1.0" encoding="UTF-8"?>
<process-definition xmlns="urn:jbpm.org:jpdl-3.1" name="my:CDC Absence Request Workflow3">
<swimlane name="initiator"/>
<start-state name="start">
  <task name="my:submitHelloworldTask" swimlane="initiator" />
  <transition name="Approve by Boss" to="helloTask">
     </transition>
</start-state>

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

<swimlane name="ericl">
      <assignment class="org.alfresco.repo.workflow.jbpm.AlfrescoAssignment">
        <actor>#{my_t1Assignee}</actor>
      </assignment>
</swimlane>
<task-node name="helloTask">
   <task name="my:helloTask" swimlane="assignee" ></task>
   <transition name="rejected" to="hello"></transition>
   <transition name="approve" to="ltt"></transition>
</task-node>

<swimlane name="getassignee">
      <assignment class="org.alfresco.repo.workflow.jbpm.AlfrescoAssignment">
         <actor>#{my_t2Assignee}</actor>
      </assignment>
</swimlane>
<task-node name="ltt">
   <task name="my:helloEvanTask" swimlane="getassignee" ></task>
   <transition name="approve" to="evanTask"></transition>
   <transition name="rejected" to="hello"></transition>
</task-node>

<task-node name="evanTask">
   <task name="my:evanTask" swimlane="ericl"></task>
  <transition name="rejected" to="hello"/>
  <transition name="approve" to="hello">

</transition>   
</task-node>
<task-node name="hello"> 
  <task name="my:completedhelloTask" swimlane="initiator"/>
  <transition name="Confirmed" to="end1"/>
</task-node>
<end-state name="end1"/>
</process-definition>

helloworld_model.xml

<model name="my:workflowonemodel" xmlns="http://www.alfresco.org/model/dictionary/1.0">

<description>Workflow One Model</description>
<author></author>
<version>1.0</version>

<imports>
<import uri="http://www.alfresco.org/model/dictionary/1.0" prefix="d" />
<import uri="http://www.alfresco.org/model/content/1.0" prefix="cm" />
<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="my.model" prefix="my" />
</namespaces>
 
     
  <types>
     <type name="my:submitHelloworldTask">
        <parent>bpm:startTask</parent>
        <mandatory-aspects>
           <aspect>my:t3Assignee</aspect>
        </mandatory-aspects>
     </type> 
    
     <type name="my:helloTask">
        <parent>bpm:workflowTask</parent>
        <mandatory-aspects>          
           <aspect>my:t2Assignee</aspect>
        </mandatory-aspects>
     </type>
    <type name="my:helloEvanTask">
        <parent>bpm:workflowTask</parent>
        <mandatory-aspects>
         <aspect>my:t1Assignee</aspect>
        </mandatory-aspects>
     </type>
    <type name="my:evanTask">
        <parent>bpm:workflowTask</parent>
       
     </type>
     <type name="my:completedhelloTask">
        <parent>bpm:workflowTask</parent>
     </type>   
  </types>
  <aspects>
      <aspect name="my:t3Assignee">
      <associations>
         <association name="my:t3Assignee">
            <source>
               <mandatory>false</mandatory>
               <many>false</many>
            </source>
            <target>
               <class>cm:person</class>
               <mandatory>false</mandatory>
               <many>false</many>
            </target>
         </association>
      </associations>
   </aspect>
   
      <aspect name="my:t1Assignee">
      <associations>
         <association name="my:t1Assignee">
            <source>
               <mandatory>false</mandatory>
               <many>false</many>
            </source>
            <target>
               <class>cm:person</class>
               <mandatory>false</mandatory>
               <many>false</many>
            </target>
         </association>
      </associations>
   </aspect>
   <aspect name="my:t2Assignee">
      <associations>
         <association name="my:t2Assignee">
            <source>
               <mandatory>false</mandatory>
               <many>false</many>
            </source>
            <target>
               <class>cm:person</class>
               <mandatory>false</mandatory>
               <many>false</many>
            </target>
         </association>
      </associations>
   </aspect>
   </aspects>
</model>

web-client-config-custom.xml

<alfresco-config>

<config evaluator="node-type" condition="my:submitHelloworldTask" 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" />

         <show-property name="bpm:workflowDueDate" display-label-id="wf_review_due_date" />

         <separator name="sep2" display-label-id="users_and_roles" component-generator="HeaderSeparatorGenerator" />

         <show-association name="my:t3Assignee" display-label-id="wf_reviewer" />
      </property-sheet>

   </config>

   <config evaluator="node-type" condition="my:helloTask" 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" />

         <show-property name="bpm:workflowDueDate" display-label-id="wf_review_due_date" />

         <separator name="sep2" display-label-id="users_and_roles" component-generator="HeaderSeparatorGenerator" />

         <show-association name="my:t2Assignee" display-label-id="wf_reviewer" />

      </property-sheet>

   </config>
  
   <config evaluator="node-type" condition="my:helloEvanTask" 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" />

         <show-property name="bpm:workflowDueDate" display-label-id="wf_review_due_date" />

         <separator name="sep2" display-label-id="users_and_roles" component-generator="HeaderSeparatorGenerator" />

         <show-association name="my:t1Assignee" display-label-id="wf_reviewer" />

      </property-sheet>

   </config>

   <config evaluator="node-type" condition="my:evanTask" 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" />

         <show-property name="bpm:workflowDueDate" display-label-id="wf_review_due_date" />

      </property-sheet>

   </config>
  
   <config evaluator="node-type" condition="my:completedhelloTask" 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" />

         <show-property name="bpm:workflowDueDate" display-label-id="wf_review_due_date" />

      </property-sheet>

   </config>
  
</alfresco-config>


Where is wrong?help me PLS.
Thanks.

roseta
Champ in-the-making
Champ in-the-making
Dear  targa2000,

I think I have the solution you were asking for. Al least it works for me:

In the processdefinition you should define both swimlanes, reviewer and reviewer2:



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



Then, in the your model, you should add the standar aspect in the two task, same as if you had only one swimlane, but do it in each task:


<type name="new:asignTask">
        <parent>bpm:workflowTask</parent>

        <mandatory-aspects>
           <aspect>bpm:assignee</aspect>
        </mandatory-aspects>

     </type>

….

<type name="new:asignTask2">
        <parent>bpm:workflowTask</parent>

        <mandatory-aspects>
           <aspect>bpm:assignee</aspect>
        </mandatory-aspects>

     </type>





and you should also add the asociation in you web-client-config-custom for both tasks:



<config evaluator="node-type" condition="new:asignTask" replace="true">
   <property-sheet>
      <separator name="sep1" display-label-id="general" component-generator="HeaderSeparatorGenerator" />
      <show-property name="bpm:workflowDescription" component-generator="TextAreaGenerator" display-label-id="newDescription"/>
      <show-property name="bpm:workflowPriority" display-label-id="newPriority"  />
      <separator name="sep2" display-label-id="users_and_roles" component-generator="HeaderSeparatorGenerator" />

      <show-association name="bpm:assignee" display-label-id="newAssignee"/>

   </property-sheet>
</config>


<config evaluator="node-type" condition="new:asingTask2" replace="true">
   <property-sheet>
      <separator name="sep1" display-label-id="general" component-generator="HeaderSeparatorGenerator" />
      <show-property name="bpm:workflowDescription" component-generator="TextAreaGenerator" display-label-id="newDescription"/>
      <show-property name="bpm:workflowPriority" display-label-id="newPriority"  />
      <separator name="sep2" display-label-id="users_and_roles" component-generator="HeaderSeparatorGenerator" />
     
      <show-association name="bpm:assignee" display-label-id="newAssignee"/>
  
    </property-sheet>
</config>



Am I being clear enough? I expect it to work for you too! =D

evan
Champ in-the-making
Champ in-the-making
Roseta ,

I have modify my code as your ,but ,the problem still exist.I can not see any information under " General " ,such as Description,Review Priority,DueDate ect. where is wrong and what need I fix?