06-05-2018 07:56 AM
Hi,
I have a process with 2 task lets say t1 and t2
I want to involve t1 task to a group namely everyone so that whenever user(who is involved in everyone group) clicks on process to view the process details user should be able to see the details of particular process
For this I have written a task listener assigned task to group at the time of task creation. unable to view the process details if logged in user is involved.How can I achieve this?
Regards
Anita Patil
06-06-2018 07:58 AM
What are you using APS or Activiti and what version?
06-07-2018 08:21 AM
Bassam Al-Sarori I am using APS 1.7
06-07-2018 08:33 AM
I believe that its possible in APS 1.8. Members of involved groups will be able to access tasks and processes.
06-20-2018 03:55 AM
Hello Bassam Al-Sarori I tried with APS 1.8.1 and tested It is working only when I involve group to task manually. With task listener it is not working.
I have printed in logs also,
Logs with task listener
groupId=5
after groupId=5
12:56:57,144 [http-nio-8082-exec-25] INFO com.activiti.extension.bean.InvolveAdminInAllTask - successfully involved to groupId
12:56:57,145 [http-nio-8082-exec-25] INFO com.activiti.extension.bean.InvolveAdminInAllTask - [Process=87501][event=assignment][TaskListener=com.activiti.extension.bean.InvolveAdminInAllTask@55671af8][ActivityId=sid-801B1B07-9D25-4208-B61B-6CBE754BFA4B][TaskAssignee=4 group id[IdentityLinkEntity[id=87507, type=candidate, groupId=5, taskId=87506]]][TaskForm=null]
12:57:00,082 [pool-7-thread-1] INFO com.activiti.service.runtime.ActivitiEventProcessingService - Processed 8 events
Logs with manually involved group to task
12:58:22,248 [http-nio-8082-exec-27] INFO com.activiti.service.runtime.AlfrescoTaskService - Involve group. Task: 87506(87501), group: 5
This is the code I have written for task listener
package com.activiti.extension.bean;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
import org.activiti.engine.delegate.DelegateExecution;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import org.activiti.engine.task.IdentityLink;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class InvolveAdminInAllTask implements TaskListener {
private static Logger logger = LoggerFactory.getLogger(InvolveAdminInAllTask.class);
@Override
public void notify(DelegateTask task)
{
DelegateExecution execution = task.getExecution();
try{
String groupId="5";
System.out.println("groupId="+groupId);
task.addCandidateGroup(groupId);
System.out.println("after groupId="+groupId);
logger.info("successfully involved to groupId");
logger.info("[Process=" + execution.getProcessInstanceId() + "][event=" + task.getEventName()
+ "][TaskListener=" + this + "][ActivityId=" + execution.getCurrentActivityId() + "][TaskAssignee="
+ task.getAssignee() + " group id" + task.getCandidates() + "][TaskForm=" + task.getFormKey() + "]");
}
catch(Exception e){
System.out.println("exception in InvolveAdminInAllTask="+e.getMessage());
logger.info("exception in InvolveAdminInAllTask="+e.getMessage());
}
}
}
06-20-2018 05:36 AM
Candidate type of involvement is used to queue tasks for group members to claim. Can you use participant type instead?
taskService.addGroupIdentityLink(taskId, groupId, IdentityLinkType.PARTICIPANT);
06-21-2018 03:39 AM
Thank you Bassam Al-Sarori I have added following lines of code it working now.
TaskService taskService=ProcessEngines.getDefaultProcessEngine().getTaskService();
taskService.addGroupIdentityLink(task.getId(), "5", "participant");
Explore our Alfresco products with the links below. Use labels to filter content by product module.