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
Ankit KhuranaAnkit Khurana 

How to assign cases to users based on the counter value of cases under user...

Scenerio is

" Whenever a new case is created, Assign case to most free user (who have minimum no of cases). There is a counter on user which show that how many cases has been assigned to an user.  Based on this counter cases will be assigned to users.                                                    

 When a case status is being changed to closed, the case counter on user will decrease by 1, and when a case is assigned to a user the case counter on user will be increased by 1."

 

Help me....

i did like this but not working fine.....

1.created a trigger

trigger assignUser on Case (before insert,after insert)
{

        String userid= '';
        Map<id,user> userMap= new Map<id,user>([select id, Assigned_Cases__c from User ORDER BY Assigned_Cases__c ASC LIMIT 1]);
       
        if(Trigger.isInsert && Trigger.isBefore)
        {
                    for(Case c : Trigger.new)
                    {
                            System.Debug('Processing ' + c.CaseNumber);
                            Caseassignment.makeCallout(c.CaseNumber);
                            //c.Owner=userid;
                    }
                   update userMap.values();
                  
        }
}

 

Query:how to insert userid i obtained from below class to the c.owner field so hat respective owner should be asigned to particular case because case is lookup of owner......

 

2.Class to use future method

public class Caseassignment
{
   
@Future(callout=true)
    public static void makecallout(String CaseNumber)
               {
                            String userid= '';
                            Map<id,user> userMap= new Map<id,user>([select id,Name, Assigned_Cases__c from User ORDER BY Assigned_Cases__c ASC LIMIT 1]);
                            List<User> uu = userMap.values();
                            userid= uu[0].id;
                           
                            user up = userMap.get(userid);
                            up.Assigned_Cases__c ++;
                            userMap.put(userid,up);
                           
                }
    }

query:

how to perform below functionality in above class

"  When a case status is being changed to closed, the case counter on user will decrease by 1, and when a case is assigned to a user the case counter on user will be increased by 1."