2 Replies Latest reply on Mar 20, 2013 4:07 AM by joploya

    userGroupCallback : getGroupTaskList

    joploya Newbie



      I encounter problem while retrieving group tasks list. Indeed their is a unique method call for user and group task in LocalTaskService. But when I pass a group id in argument to the function

      it call this method in TAskServiceSession :


                public List<TaskSummary> getTasksAssignedAsPotentialOwnerByStatus(String userId, List<Status> status, String language) {
              List<String> groupIds = doUserGroupCallbackOperation(userId, null);
              HashMap<String, Object> params = addParametersToMap(
                      "userId", userId,
                      "groupIds", groupIds,
                      "language", language,
                      "status", status);
              return (List<TaskSummary>) tpm.queryWithParametersInTransaction("TasksAssignedAsPotentialOwnerByStatusWithGroups", params);


      Because userId parameter is actually a groupId, the second call return an empty List.

      So query failed because it miss an argument:


      where t.archived = 0 
      and ( potentialOwners.id = :userId 
              or potentialOwners.id in () ) 


      I don't figure out what is wrong in my implementation.


      Thankyou very much to help me.



        • 1. Re: userGroupCallback : getGroupTaskList
          Shobhit Tyagi Master



          The group task thing troubled me a lot too.

          I dont know whats wrong with your impl but this is what I do :


          //Connect the task handler 
          BlockingTaskSummaryResponseHandler summaryHandler = new BlockingTaskSummaryResponseHandler();
          ArrayList<Object> groupTaskDetail = new ArrayList<Object>();
          List<TaskSummary> tasks = null; 
          List<String> groups = getGroupsForUser(userId);  // Get the group IDs for the target user..
          client.getTasksAssignedAsPotentialOwner(userId, groups, "en-UK", summaryHandler);
          tasks = summaryHandler.getResults();



          • 2. Re: userGroupCallback : getGroupTaskList
            joploya Newbie

            Finally, I resolved my problem by adding the userId in the groupList so this list is never empty. (Even if the userId correspond to a groupId)





                 * Returns list of group ids for specified user id.


                 * @param userId                  the user id assigned to the task

                 * @param groupIds                list of group ids assigned to the task

                 * @param allExistingGroupIds   list of all currently known group ids


                 * @return List of group ids.



                 public List<String> getGroupsForUser(String userId, List<String> groupIds, List<String> allExistingGroupIds) {


                     logger.debug("Get groups for user "+userId);

                     List<String> userGroups = new ArrayList<>();


                     //To avoid an error inside the named request of human task, always add the userId inside group list



                     User user = getLdapUser(userId);

                     if(user != null){



                     return userGroups;