function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion
rajubalajirajubalaji 

get apex code for list of user for task assignment

Hi Team,

This Is Balaji .I am new to apex development.I Have one scneario here

I am trying to get list of user for task assignment by datewise.Please find the below code for reference.

public class allUser{
    Public Static List<String> GetUserListForTaskAssignmentNew(List<String> allUser){
List<String> UserId = new List<String>();
    List<User> assignUserList=new List<User>();
    String User = null;
        List<User> = [SELECT ownerId, count(Type) from Task where createdDate<=Today group By ownerID];
        {
          if(allUser.size() > 0)
        }
    }
}

While writing in query i am getting only who has done task but i need how has done task aswell not done task.

these are the error i am getting:
Unexpected token 'List'.
Missing return statement required return type: List<String>

thank you inadvance.please help me
Best Answer chosen by rajubalaji
AmarpreetAmarpreet
Use below Code:
 
public class AllUser{
    public static  Map<String, Integer> GetUserListForTaskAssignmentNew(List<String> allUser){
         Map<String, Integer> userTasksCount = new Map<String, Integer> ();
        List<AggregateResult> taskList = [SELECT ownerId, count(id) totalTasks from Task where ownerId IN:allUser group By ownerID];
        
        for(AggregateResult ar : taskList){
            userTasksCount.put(String.valueOf(ar.get('ownerId')), Integer.valueOf(ar.get('totalTasks')));
        }
        return userTasksCount;
    }
}

The Map: "userTasksCount" will return the Users Id's with their total assigned tasks.

All Answers

AmarpreetAmarpreet
Hope this would help!
 
public class PopupController{
    Public Static List<String> GetUserListForTaskAssignmentNew(List<String> allUser){
        List<String> UserId = new List<String>();
        List<User> assignUserList=new List<User>();
        String User = null;
        List<AggregateResult> tasks = [SELECT ownerId, count(Type) from Task where createdDate<=Today group By ownerID];
        {
            if(allUser.size() > 0)
            {
                
            }
        }
        return UserId;
    }
}

Also, correct you SOQL according to your requirement.
rajubalajirajubalaji
Thank you so much for reply.but in my case I don't need to get the list of users from user table.i need to get user from the parameter table called alluser.if possible please help me.
AmarpreetAmarpreet
Can you please elaborate your requirement and how you are trying to achieve this?
rajubalajirajubalaji
Hi sir, My requirements was I need find out total number counts of task assigned to each user.and in my above program I have written variable as alluser from that I need to take the get the list of user of task.and I need to write a query for same thing means the query was not for table it was for the variable parameter. Thank you sir
AmarpreetAmarpreet
Use below Code:
 
public class AllUser{
    public static  Map<String, Integer> GetUserListForTaskAssignmentNew(List<String> allUser){
         Map<String, Integer> userTasksCount = new Map<String, Integer> ();
        List<AggregateResult> taskList = [SELECT ownerId, count(id) totalTasks from Task where ownerId IN:allUser group By ownerID];
        
        for(AggregateResult ar : taskList){
            userTasksCount.put(String.valueOf(ar.get('ownerId')), Integer.valueOf(ar.get('totalTasks')));
        }
        return userTasksCount;
    }
}

The Map: "userTasksCount" will return the Users Id's with their total assigned tasks.
This was selected as the best answer