Hi All,

         Right now Iam playing with assignment handlers and I have many 
confusions.
         
         What will happen when we assign a task to
         [1] group
         [2] role {member ship name}

         what I expected is task should be assigned to all members of group/who 
matched role. But here when task is assigned to group, its not getting assigned 
to any user and if task is assigned based on role then its getting assigned to 
only one user even there exists many users with that role.


Process Definition


  | <?xml version="1.0" encoding="UTF-8"?>
  | 
  | <process-definition name="tmp1swimlanetest-2">
  | 
  |   <!-- SWIMLANES (= process roles) -->
  |   <swimlane name="tosomeone">
  |     <assignment expression="user(rajeev)" />
  |   </swimlane>
  |   
  |   <!-- NODES -->
  | 
  |   <start-state name="tmp1swimlanetest-2-state-1">
  |     <task swimlane="tosomeone">
  |       <controller>
  |         <variable name="initiatorname" />
  |         <variable name="assignmentexpression" />
  |       </controller>
  |     </task>
  |     <transition to="tmp1swimlanetest-2-state-2" />
  |   </start-state>
  |   
  |   <task-node name="tmp1swimlanetest-2-state-2">
  |     <task>
  |       <assignment class='com.sample.workflow.assignments.Swimlanetest2AH1' 
/>
  |       <controller>
  |         <variable name="initiatorname" access="read"/>
  |         <variable name="assignmentexpression" access="read"/>
  |         <variable name="yourname"/>
  |       </controller>
  |     </task>
  |     <transition to="end" />
  |   </task-node>
  | 
  |   <end-state name="end" />
  | 
  | </process-definition>
  | 


Assignment Handler -> Swimlanetest2AH1

  | package com.sample.workflow.assignments;
  | 
  | import org.jbpm.graph.exe.*;
  | import org.jbpm.taskmgmt.def.*;
  | import org.jbpm.taskmgmt.exe.Assignable;
  | import org.jbpm.identity.assignment.*;
  | 
  | public class Swimlanetest2AH1 extends ExpressionAssignmentHandler {
  | 
  |   private static final long serialVersionUID = 1L;
  | 
  |   public void assign(Assignable assignable, ExecutionContext 
executionContext) {
  |       System.out.println("*********Inside Swimlanetest2AH1****");
  |       String strExpression = 
(String)executionContext.getVariable("assignmentexpression");
  |       System.out.println("Got expression as " + strExpression);
  |       
  |       System.out.println("*****Assigning based on assignment expression");
  |       super.expression = strExpression;
  |       super.assign(assignable, executionContext);
  |       System.out.println("*******Finished Swimlanetest2AH1*********");
  |   }
  | 
  | }
  | 


TABLES


  | JBPM_ID_MEMBERSHIP
  | ******************
  | ID_ CLASS_  NAME_                   ROLE_   USER_   GROUP_
  | ----------------------------------------------------------------
  | 959 M                                       960     958
  | 957 M       leaderofthegang                 956     958
  | 960 M       teammember                      4       959
  | 961 M       teammember                      5       959
  | 962 M       projectleader                   6       959
  | 963 M       technicalleader                 7       959
  | 
  | JBPM_ID_GROUP
  | *************
  | ID_ CLASS_  NAME_           TYPE_
  | ----------------------------------------
  | 958 G       hellsangels     hierarchy
  | 959 G       dummy           project
  | 
  | JBPM_ID_USER
  | ************
  | ID_ CLASS_  NAME_           EMAIL_                  PASSWORD_
  | ------------------------------------------------------------------
  | 3   U       bert            [EMAIL PROTECTED]       
ernie,theresabananainyourear
  | 956 U       john            
  | 960 U       bill            
  | 4   U       siddarth                                siddarth
  | 2   U       ernie           [EMAIL PROTECTED]       
canthereyoubert,theresabananainmyear
  | 5   U       praveen                                 praveen
  | 6   U       rajeev                                  rajeev
  | 7   U       shaileshraval                           shaileshraval
  | 


Below are sample assignment tests that are performed.


  | (test-1)
  | data given=
  | 
  | initiatorname::rajeev
  | assignmentexpression::group(dummy)
  | 
  | console output=
  | 
  | 20:51:47,833 INFO  [STDOUT] Hibernate: select hibernate_sequence.nextval 
from dual
  | 20:51:47,848 INFO  [STDOUT] *********Inside Swimlanetest2AH1****
  | 20:51:47,848 INFO  [STDOUT] Got expression as group(dummy)
  | 20:51:47,848 INFO  [STDOUT] *****Assigning based on assignment expression
  | 20:51:47,848 DEBUG [ExpressionAssignmentHandler] resolving first term 
'group(dummy)'
  | 20:51:47,848 INFO  [STDOUT] Hibernate: select hibernate_sequence.nextval 
from dual
  | 20:51:47,848 INFO  [STDOUT] Hibernate: select group0_.ID_ as ID1_, 
group0_.NAME_ as NAME3_2_, group0_.TYPE_ as TYPE4_2_ from JBPM_ID_GROUP group0_ 
where group0_.NAME_=?
  | 20:51:47,864 INFO  [STDOUT] *******Finished Swimlanetest2AH1*********
  | 20:51:47,864 DEBUG [GraphElement] event 'task-create' on 
'Task(tmp1swimlanetest-2-state-2)' for 'Token(/)'
  | 20:51:47,864 INFO  [STDOUT] Hibernate: select events0_.TASK_ as TASK8___, 
events0_.ID_ as ID1___, events0_.EVENTTYPE_ as EVENTTYPE2___, events0_.ID_ as 
ID1_0_, events0_.EVENTTYPE_ as EVENTTYPE2_7_0_, events0_.TYPE_ as TYPE3_7_0_, 
events0_.GRAPHELEMENT_ as GRAPHELE4_7_0_ from JBPM_EVENT events0_ where 
events0_.TASK_=?
  | 20:51:47,864 DEBUG [GraphElement] event 'after-signal' on 
'StartState(tmp1swimlanetest-2-state-1)' for 'Token(/)'
  | 20:51:47,864 DEBUG [TaskBean] assignmentlogs: []
  | 20:51:47,864 INFO  [STDOUT] Hibernate: select hibernate_sequence.nextval 
from dual
  | 20:51:47,864 INFO  [STDOUT] Hibernate: select hibernate_sequence.nextval 
from dual
  | 20:51:47,864 INFO  [STDOUT] Hibernate: select hibernate_sequence.nextval 
from dual
  | 20:51:47,864 INFO  [STDOUT] Hibernate: select hibernate_sequence.nextval 
from dual
  | 20:51:47,880 DEBUG [PersistenceContext] committing transaction
  | 20:51:47,880 INFO  [STDOUT] Hibernate: select hibernate_sequence.nextval 
from dual
  | 20:51:47,880 INFO  [STDOUT] Hibernate: insert into JBPM_VARIABLEINSTANCE 
(NAME_, CONVERTER_, TOKEN_, TOKENVARIABLEMAP_, PROCESSINSTANCE_, STRINGVALUE_, 
CLASS_, ID_) values (?, ?, ?, ?, ?, ?, 'S', ?)
  | 
  | Expected Result:: Task will be assigned to all the users in the specified 
group
  | 
  | Question:: Why task is not assigned to any user.
  | ------------------
  | 
  | (test-2)
  | data given=
  | 
  | initiatorname::rajeev
  | assignmentexpression::group(dummy) --> member(projectleader)
  | 
  | console output=
  | 
  | 20:58:26,278 INFO  [STDOUT] Hibernate: select hibernate_sequence.nextval 
from dual
  | 20:58:26,293 INFO  [STDOUT] *********Inside Swimlanetest2AH1****
  | 20:58:26,293 INFO  [STDOUT] Got expression as group(dummy) --> 
member(projectleader)
  | 20:58:26,293 INFO  [STDOUT] *****Assigning based on assignment expression
  | 20:58:26,293 DEBUG [ExpressionAssignmentHandler] resolving first term 
'group(dummy)'
  | 20:58:26,293 INFO  [STDOUT] Hibernate: select hibernate_sequence.nextval 
from dual
  | 20:58:26,309 INFO  [STDOUT] Hibernate: select group0_.ID_ as ID1_, 
group0_.NAME_ as NAME3_2_, group0_.TYPE_ as TYPE4_2_ from JBPM_ID_GROUP group0_ 
where group0_.NAME_=?
  | 20:58:26,309 DEBUG [ExpressionAssignmentHandler] resolving next term 
'member(projectleader)'
  | 20:58:26,309 INFO  [STDOUT] Hibernate: select membership0_.GROUP_ as 
GROUP6___, membership0_.ID_ as ID1___, membership0_.ID_ as ID1_0_, 
membership0_.NAME_ as NAME3_3_0_, membership0_.ROLE_ as ROLE4_3_0_, 
membership0_.USER_ as USER5_3_0_, membership0_.GROUP_ as GROUP6_3_0_ from 
JBPM_ID_MEMBERSHIP membership0_ where membership0_.GROUP_=?
  | 20:58:26,340 INFO  [STDOUT] Hibernate: select user0_.ID_ as ID1_0_, 
user0_.NAME_ as NAME3_0_0_, user0_.EMAIL_ as EMAIL4_0_0_, user0_.PASSWORD_ as 
PASSWORD5_0_0_ from JBPM_ID_USER user0_ where user0_.ID_=?
  | 20:58:26,356 DEBUG [GraphElement] event 'task-assign' on 
'Task(tmp1swimlanetest-2-state-2)' for 'Token(/)'
  | 20:58:26,356 INFO  [STDOUT] Hibernate: select events0_.TASK_ as TASK8___, 
events0_.ID_ as ID1___, events0_.EVENTTYPE_ as EVENTTYPE2___, events0_.ID_ as 
ID1_0_, events0_.EVENTTYPE_ as EVENTTYPE2_7_0_, events0_.TYPE_ as TYPE3_7_0_, 
events0_.GRAPHELEMENT_ as GRAPHELE4_7_0_ from JBPM_EVENT events0_ where 
events0_.TASK_=?
  | 20:58:26,372 INFO  [STDOUT] *******Finished Swimlanetest2AH1*********
  | 20:58:26,372 DEBUG [GraphElement] event 'task-create' on 
'Task(tmp1swimlanetest-2-state-2)' for 'Token(/)'
  | 20:58:26,372 DEBUG [GraphElement] event 'after-signal' on 
'StartState(tmp1swimlanetest-2-state-1)' for 'Token(/)'
  | 20:58:26,372 DEBUG [TaskBean] assignmentlogs: [task-assign[rajeev,[EMAIL 
PROTECTED]
  | 20:58:26,372 INFO  [STDOUT] [Debug] msg
  | 20:58:26,372 INFO  [STDOUT] Hibernate: select hibernate_sequence.nextval 
from dual
  | 20:58:26,372 INFO  [STDOUT] Hibernate: select hibernate_sequence.nextval 
from dual
  | 
  | Got Expected Result
  | --------------------
  | 
  | (test-3)
  | datagiven=
  | 
  | initiatorname::rajeev
  | assignmentexpression::group(dummy) --> member(technicalleader)
  | 
  | console output=
  | 
  | 21:02:27,564 INFO  [STDOUT] *********Inside Swimlanetest2AH1****
  | 21:02:27,564 INFO  [STDOUT] Got expression as group(dummy) --> 
member(technicalleader)
  | 21:02:27,564 INFO  [STDOUT] *****Assigning based on assignment expression
  | 21:02:27,564 DEBUG [ExpressionAssignmentHandler] resolving first term 
'group(dummy)'
  | 21:02:27,564 INFO  [STDOUT] Hibernate: select hibernate_sequence.nextval 
from dual
  | 21:02:27,564 INFO  [STDOUT] Hibernate: select group0_.ID_ as ID1_, 
group0_.NAME_ as NAME3_2_, group0_.TYPE_ as TYPE4_2_ from JBPM_ID_GROUP group0_ 
where group0_.NAME_=?
  | 21:02:27,564 DEBUG [ExpressionAssignmentHandler] resolving next term 
'member(technicalleader)'
  | 21:02:27,580 INFO  [STDOUT] Hibernate: select membership0_.GROUP_ as 
GROUP6___, membership0_.ID_ as ID1___, membership0_.ID_ as ID1_0_, 
membership0_.NAME_ as NAME3_3_0_, membership0_.ROLE_ as ROLE4_3_0_, 
membership0_.USER_ as USER5_3_0_, membership0_.GROUP_ as GROUP6_3_0_ from 
JBPM_ID_MEMBERSHIP membership0_ where membership0_.GROUP_=?
  | 21:02:27,595 INFO  [STDOUT] Hibernate: select user0_.ID_ as ID1_0_, 
user0_.NAME_ as NAME3_0_0_, user0_.EMAIL_ as EMAIL4_0_0_, user0_.PASSWORD_ as 
PASSWORD5_0_0_ from JBPM_ID_USER user0_ where user0_.ID_=?
  | 21:02:27,595 DEBUG [GraphElement] event 'task-assign' on 
'Task(tmp1swimlanetest-2-state-2)' for 'Token(/)'
  | 21:02:27,595 INFO  [STDOUT] Hibernate: select events0_.TASK_ as TASK8___, 
events0_.ID_ as ID1___, events0_.EVENTTYPE_ as EVENTTYPE2___, events0_.ID_ as 
ID1_0_, events0_.EVENTTYPE_ as EVENTTYPE2_7_0_, events0_.TYPE_ as TYPE3_7_0_, 
events0_.GRAPHELEMENT_ as GRAPHELE4_7_0_ from JBPM_EVENT events0_ where 
events0_.TASK_=?
  | 21:02:27,595 INFO  [STDOUT] *******Finished Swimlanetest2AH1*********
  | 21:02:27,595 DEBUG [GraphElement] event 'task-create' on 
'Task(tmp1swimlanetest-2-state-2)' for 'Token(/)'
  | 21:02:27,595 DEBUG [GraphElement] event 'after-signal' on 
'StartState(tmp1swimlanetest-2-state-1)' for 'Token(/)'
  | 21:02:27,595 DEBUG [TaskBean] assignmentlogs: 
[task-assign[shaileshraval,[EMAIL PROTECTED]
  | 21:02:27,595 INFO  [STDOUT] [Debug] msg
  | 21:02:27,611 INFO  [STDOUT] Hibernate: select hibernate_sequence.nextval 
from dual
  | 21:02:27,611 INFO  [STDOUT] Hibernate: select hibernate_sequence.nextval 
from dual
  | 21:02:27,611 INFO  [STDOUT] Hibernate: select hibernate_sequence.nextval 
from dual
  | 21:02:27,611 INFO  [STDOUT] Hibernate: select hibernate_sequence.nextval 
from dual
  | 21:02:27,611 INFO  [STDOUT] Hibernate: select hibernate_sequence.nextval 
from dual
  | 
  | Got Expected Result
  | ---------------------
  | 
  | (test-4)
  | data given=
  | 
  | initiatorname::rajeev
  | assignmentexpression::group(dummy) --> member(teammember)
  | 
  | console output=
  | 
  | 21:05:22,829 INFO  [STDOUT] Hibernate: select hibernate_sequence.nextval 
from dual
  | 21:05:22,844 INFO  [STDOUT] *********Inside Swimlanetest2AH1****
  | 21:05:22,844 INFO  [STDOUT] Got expression as group(dummy) --> 
member(teammember)
  | 21:05:22,844 INFO  [STDOUT] *****Assigning based on assignment expression
  | 21:05:22,844 DEBUG [ExpressionAssignmentHandler] resolving first term 
'group(dummy)'
  | 21:05:22,844 INFO  [STDOUT] Hibernate: select hibernate_sequence.nextval 
from dual
  | 21:05:22,844 INFO  [STDOUT] Hibernate: select group0_.ID_ as ID1_, 
group0_.NAME_ as NAME3_2_, group0_.TYPE_ as TYPE4_2_ from JBPM_ID_GROUP group0_ 
where group0_.NAME_=?
  | 21:05:22,876 DEBUG [ExpressionAssignmentHandler] resolving next term 
'member(teammember)'
  | 21:05:22,876 INFO  [STDOUT] Hibernate: select membership0_.GROUP_ as 
GROUP6___, membership0_.ID_ as ID1___, membership0_.ID_ as ID1_0_, 
membership0_.NAME_ as NAME3_3_0_, membership0_.ROLE_ as ROLE4_3_0_, 
membership0_.USER_ as USER5_3_0_, membership0_.GROUP_ as GROUP6_3_0_ from 
JBPM_ID_MEMBERSHIP membership0_ where membership0_.GROUP_=?
  | 21:05:22,876 INFO  [STDOUT] Hibernate: select user0_.ID_ as ID1_0_, 
user0_.NAME_ as NAME3_0_0_, user0_.EMAIL_ as EMAIL4_0_0_, user0_.PASSWORD_ as 
PASSWORD5_0_0_ from JBPM_ID_USER user0_ where user0_.ID_=?
  | 21:05:22,876 DEBUG [GraphElement] event 'task-assign' on 
'Task(tmp1swimlanetest-2-state-2)' for 'Token(/)'
  | 21:05:22,876 INFO  [STDOUT] Hibernate: select events0_.TASK_ as TASK8___, 
events0_.ID_ as ID1___, events0_.EVENTTYPE_ as EVENTTYPE2___, events0_.ID_ as 
ID1_0_, events0_.EVENTTYPE_ as EVENTTYPE2_7_0_, events0_.TYPE_ as TYPE3_7_0_, 
events0_.GRAPHELEMENT_ as GRAPHELE4_7_0_ from JBPM_EVENT events0_ where 
events0_.TASK_=?
  | 21:05:22,891 INFO  [STDOUT] *******Finished Swimlanetest2AH1*********
  | 21:05:22,891 DEBUG [GraphElement] event 'task-create' on 
'Task(tmp1swimlanetest-2-state-2)' for 'Token(/)'
  | 21:05:22,891 DEBUG [GraphElement] event 'after-signal' on 
'StartState(tmp1swimlanetest-2-state-1)' for 'Token(/)'
  | 21:05:22,891 DEBUG [TaskBean] assignmentlogs: [task-assign[siddarth,[EMAIL 
PROTECTED]
  | 21:05:22,891 INFO  [STDOUT] [Debug] msg
  | 21:05:22,891 INFO  [STDOUT] Hibernate: select hibernate_sequence.nextval 
from dual
  | 21:05:22,891 INFO  [STDOUT] Hibernate: select hibernate_sequence.nextval 
from dual
  | 21:05:22,891 INFO  [STDOUT] Hibernate: select hibernate_sequence.nextval 
from dual
  | 21:05:22,891 INFO  [STDOUT] Hibernate: select hibernate_sequence.nextval 
from dual
  | 21:05:22,907 INFO  [STDOUT] Hibernate: select hibernate_sequence.nextval 
from dual
  | 21:05:22,907 DEBUG [PersistenceContext] committing transaction
  | 21:05:22,907 INFO  [STDOUT] Hibernate: insert into JBPM_VARIABLEINSTANCE 
(NAME_, CONVERTER_, TOKEN_, TOKENVARIABLEMAP_, PROCESSINSTANCE_, STRINGVALUE_, 
CLASS_, ID_) values (?, ?, ?, ?, ?, ?, 'S', ?)
  | 
  | Expected Result:: Task will be assigned to all the users whose role is 
teammember
  | 
  | Question:: Why task is not assigned to another user, praveen but only got 
assigned to siddarth.
  | ---------------------
  | 
  | 
  | 
  | Please clarify my problems. Is there any link where detailed in-depth 
examples are given for assignment handlers.
  | 
  | Thanks in advance,
  | 

View the original post : 
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3909795#3909795

Reply to the post : 
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3909795


-------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc. Do you grep through log files
for problems?  Stop!  Download the new AJAX search engine that makes
searching your log files as easy as surfing the  web.  DOWNLOAD SPLUNK!
http://ads.osdn.com/?ad_id=7637&alloc_id=16865&op=click
_______________________________________________
JBoss-user mailing list
JBoss-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/jboss-user

Reply via email to