Sasi R [
http://community.jboss.org/people/sasir] created the discussion
"Group assignment and action on tasks"
To view the discussion, visit:
http://community.jboss.org/message/595376#595376
--------------------------------------------------------------
Am able to define and assign the groupid tohuman task and able to pull the list of tasks
using TaskClient. Howwever am unable to action further(like release/claim/start/complete)
on the items assigned to the group using the member of group as userid.
How does TaskServer behave in this scenario? Am i missing something here??
Code Snippet
*******
*For Group Assignment*
MinaTaskServer server;
EntityManagerFactory emf =
Persistence.createEntityManagerFactory("org.jbpm.task");
TaskService taskService = new TaskService(emf,
SystemEventListenerFactory.getSystemEventListener());
TaskServiceSession taskSession= taskService.createSession();
server = new MinaTaskServer(taskService);
Thread thread = new Thread(server);
List<OrganizationalEntity> usersList=new ArrayList<OrganizationalEntity>();
usersList.add(**new** User("sasi"));
usersList.add(**new** User("venkat"));
usersList.add(**new** User("krisv"));
usersList.add(**new** User("mary"));
BPMTaskUserInfo userInfo = **new**BPMTaskUserInfo();
taskService.setUserinfo(userInfo);
userInfo.getGroups().put(**new** Group("Group1"), usersList);
userInfo.getGroups().put(**new** Group("Group2"), usersList);
userInfo.getGroups().put(**new** Group("Group3"), usersList);
#####
###
####
#
*For retrieving tasks*
**
public static void getTasks(StatefulKnowledgeSession ksession){
WorkItemHandler htHandler = new WSHumanTaskHandler();
ksession.getWorkItemManager().registerWorkItemHandler("Human Task",
htHandler);
TaskClient client = new TaskClient(new MinaTaskClientConnector("client 1",new
MinaTaskClientHandler(SystemEventListenerFactory.getSystemEventListener())));
boolean isConnected = client.connect("127.0.0.1", 9123);
System.out.println("client conencted :"+isConnected);
BlockingTaskSummaryResponseHandler summaryHandler = new
BlockingTaskSummaryResponseHandler();
int timeoutCounter = 0;
List<TaskSummary> tasks;
List<String> groups= new ArrayList<String>();
groups.add("Group1");
do {
client.getTasksAssignedAsPotentialOwner("sasi",groups, "en-UK",
summaryHandler);
tasks = summaryHandler.getResults();
TaskSummary task = null;
for (TaskSummary taskSummary : tasks)
{
System.out.println(taskSummary.getId() + " : " +
taskSummary.getName());
}
//wait until the task is registered with the server or timeout expires
if (timeoutCounter != 0) {
try {
Thread.sleep(10);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
} while (tasks.isEmpty() && timeoutCounter++ < 10);
System.out.println("Tasks size is"+tasks.size());
TaskSummary task = tasks.get(0);
System.out.println("Task details are "+task.getId());
BlockingTaskOperationResponseHandler operationHandler =
new BlockingTaskOperationResponseHandler();
client.release(task.getId(), "Administrator", operationHandler);
operationHandler.waitTillDone(5000);
operationHandler =
new BlockingTaskOperationResponseHandler();
client.claim(task.getId(), "sasi", operationHandler);
operationHandler.waitTillDone(5000);
operationHandler =
new BlockingTaskOperationResponseHandler();
client.start(task.getId(), "sasi", operationHandler);
operationHandler.waitTillDone(5000);
operationHandler =
new BlockingTaskOperationResponseHandler();
client.complete(task.getId(), "sasi", null,
operationHandler);
operationHandler.waitTillDone(5000);
}
*Error:*
[2011:03:83 11:03:898:debug] Arguments : [[org.jbpm.task.query.TaskSummary@3585d013,
http://community.jboss.org/mailto:org.jbpm.task.query.TaskSummary@7fc4f753
org.jbpm.task.query.TaskSummary@7fc4f753,
http://community.jboss.org/mailto:org.jbpm.task.query.TaskSummary@c2579d8d
org.jbpm.task.query.TaskSummary@c2579d8d,
http://community.jboss.org/mailto:org.jbpm.task.query.TaskSummary@73ef06e5
org.jbpm.task.query.TaskSummary@73ef06e5,
http://community.jboss.org/mailto:org.jbpm.task.query.TaskSummary@2d60e703
org.jbpm.task.query.TaskSummary@2d60e703,
http://community.jboss.org/mailto:org.jbpm.task.query.TaskSummary@aa5cc20b
org.jbpm.task.query.TaskSummary@aa5cc20b,
http://community.jboss.org/mailto:org.jbpm.task.query.TaskSummary@33aad8e3
org.jbpm.task.query.TaskSummary@33aad8e3,
http://community.jboss.org/mailto:org.jbpm.task.query.TaskSummary@105b609b
org.jbpm.task.query.TaskSummary@105b609b,
http://community.jboss.org/mailto:org.jbpm.task.query.TaskSummary@9a153a13
org.jbpm.task.query.TaskSummary@9a153a13,
http://community.jboss.org/mailto:org.jbpm.task.query.TaskSummary@2398c26b
org.jbpm.task.query.TaskSummary@2398c26b,
http://community.jboss.org/mailto:org.jbpm.task.query.TaskSummary@63ece17b
org.jbpm.task.query.TaskSummary@63ece17b]]
5105 : Event-Ready-Task
9905 : Event-Ready-Task
3755 : Event-Ready-Task
4355 : Event-Ready-Task
8705 : Event-Ready-Task
5705 : Event-Ready-Task
6305 : Event-Ready-Task
6905 : Event-Ready-Task
7505 : Event-Ready-Task
8105 : Event-Ready-Task
9305 : Event-Ready-Task
Tasks size is11
Task details are 5105
org.jbpm.task.service.PermissionDeniedException: Server-side Exception: User
'[User:'Administrator']' was unable to execution operation
'Release' on task id 5105 due to no 'current status' matchines
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at
org.jbpm.task.service.responsehandlers.AbstractBaseResponseHandler.createSideException(AbstractBaseResponseHandler.java:74)
at
org.jbpm.task.service.responsehandlers.AbstractBlockingResponseHandler.waitTillDone(AbstractBlockingResponseHandler.java:48)
at com.sample.CorporateActionsNewTest.getTasks(CorporateActionsNewTest.java:132)
at com.sample.CorporateActionsNewTest.main(CorporateActionsNewTest.java:60)
[2011:03:83 11:03:37:debug] Message receieved on client : OperationResponse
[2011:03:83 11:03:38:debug] Arguments : [org.jbpm.task.service.PermissionDeniedException:
User '[User:'Administrator']' was unable to execution operation
'Release' on task id 5105 due to no 'current status' matchines]
If i try with Sasi for release
org.jbpm.task.service.PermissionDeniedException: Server-side Exception: User
'[User:'sasi']' was unable to execution operation 'Release' on
task id 5105 due to no 'current status' matchines
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at
org.jbpm.task.service.responsehandlers.AbstractBaseResponseHandler.createSideException(AbstractBaseResponseHandler.java:74)
at
org.jbpm.task.service.responsehandlers.AbstractBlockingResponseHandler.waitTillDone(AbstractBlockingResponseHandler.java:48)[2011:03:83
11:03:626:debug] Message receieved on client : OperationResponse
[2011:03:83 11:03:627:debug] Arguments : [org.jbpm.task.service.PermissionDeniedException:
User '[User:'sasi']' was unable to execution operation 'Release'
on task id 5105 due to no 'current status' matchines]
at com.sample.CorporateActionsNewTest.getTasks(CorporateActionsNewTest.java:132)
at com.sample.CorporateActionsNewTest.main(CorporateActionsNewTest.java:60)
5105 task is with 'Ready' status in datasbase
--------------------------------------------------------------
Reply to this message by going to Community
[
http://community.jboss.org/message/595376#595376]
Start a new discussion in jBPM at Community
[
http://community.jboss.org/choose-container!input.jspa?contentType=1&...]