Join the #BuildWithBuildAgent Challenge! Get recognized, earn exclusive swag, and inspire the ServiceNow Community with what you can build using Build Agent.  Join the Challenge.

Adding an entry to calendar messes up resource allocations

jamiegirouard
Kilo Contributor

Geneva Patch 6.   Installed resource management, working with it essentially OOB and immediately see an issue - when you add a calendar entry, ServiceNow basically adds three allocations - one of type Allocation, one of type Allocation-Calendar, and one of type meeting.   So if you set up a morning event, instead of being allocated for 4 hours on a particular day, you're allocated for 12.  

screenshot1.png

screenshot1a.png

Is this a known issue, or some kind of configuration that needs to be changed that I'm not aware of.

1 ACCEPTED SOLUTION

What you can do for this is have time off be an "excluded" child entry on that users schedule.     The only thing that actually reduces capacity is that on the their schedule.  



Capacity is determined by the schedule either: at that users level if they have a schedule or by the default schedule if the user schedule is empty.   So to get this to work here is what you need.



An intake form/record producer on "Schedule Entry" that does the following either in record producer script or by work flow


        a.   check to see if the user has their own schedule, if not copy the default schedule(or Parent schedule if you want resource managers to be able to apply a schedule for them) with calendar entries and name it their display name with a type of "user"


        b.   Creates an approval workflow/record if you have a requirement for time off to be approved.


        c.   Create an "excluded" child entry on the users own personal schedule that is the time off (the users capacity is now reduced)



If you do this you really want to add "parent schedule" to the RESOURCE --> users list view so that managers can still say "hey this resource should be at %50 schedule or something, and you also need to give type values on the schedule record (which is just string field) so you can filter, because, eventually EVERY USER IN YOUR SYSTEM IS GOING TO HAVE THEIR OWN SCHEDULE RECORD WITH THIS APPROACH.   So you are going to need to be able to filter them out/in etc.  



You also probably would want a business rule that if the parent schedules changes it also change the users primary schedule entries but keeps the excluded child entries.    



You can learn more about it here: Resource schedules      



Someone like arun.vydianathan or ITSMgal who are SN employees and work on the PPS product could tell you if his approach is completely out of the intention of oob set up or not.


View solution in original post

18 REPLIES 18

IMO, committed utilization is "how much capacity of the resource is allocated".   So in that scenario, how many hours are available for someone to allocate?



According to the way SN calculates availability, there are 8 hours available to allocate, so IMO it should be 80%.  



Now let's say you had this scenario:



M-9 hours


T-9 hours


W-9 hours


T-9 hours


F-9 hours



Then in that case, you would have committed utilization over 100% because the number of allocated hours (45) is greater than the capacity (40) of the user.



Especially when you start talking about "non-work" events like time off, the idea of a simple "blocked hours/capacity" calculation creates confusion.   Because an two day, all-day time off event is going to get treated as 48 blocked hours - and even though the user is available for three days that week, the committed utilization report makes it look like the user is over 100% allocated.   It would be ideal if certain resource events were forced to respect schedules (i.e., if you have an all-day event it only "blocks" 8 hours) while others (like task work) could be extended outside the framework of the schedule.  


allisonk
Kilo Contributor

Has there been a solution to this issue?   I'm seeing the same thing, but from the thread, it doesn't sound like there is a solution.   I'm looking to be able to bring my team (around 150 people) up on this module, but this is a huge flaw I've seen in the module.  



I've got some additional concerns that I'll post separately if I can't find answers.



Thanks,


Allison


Hi Allison,


Can you please explain your requirement and what issues are you observing with the current behavior?



To summarize the discussion so far, if user is allocated as follows (36 hours) in a 40 hour week -



M -9 hours


T -9 hours


W -9 hours


T - 9 hours


F - 0 hours



The utilization will be shown as = 90% ( 36/40*100)


Availability will be shown as 8 hours, as there is no allocation for Friday.



Do you see any issues with this?



Thanks,


Pradeep


What you can do for this is have time off be an "excluded" child entry on that users schedule.     The only thing that actually reduces capacity is that on the their schedule.  



Capacity is determined by the schedule either: at that users level if they have a schedule or by the default schedule if the user schedule is empty.   So to get this to work here is what you need.



An intake form/record producer on "Schedule Entry" that does the following either in record producer script or by work flow


        a.   check to see if the user has their own schedule, if not copy the default schedule(or Parent schedule if you want resource managers to be able to apply a schedule for them) with calendar entries and name it their display name with a type of "user"


        b.   Creates an approval workflow/record if you have a requirement for time off to be approved.


        c.   Create an "excluded" child entry on the users own personal schedule that is the time off (the users capacity is now reduced)



If you do this you really want to add "parent schedule" to the RESOURCE --> users list view so that managers can still say "hey this resource should be at %50 schedule or something, and you also need to give type values on the schedule record (which is just string field) so you can filter, because, eventually EVERY USER IN YOUR SYSTEM IS GOING TO HAVE THEIR OWN SCHEDULE RECORD WITH THIS APPROACH.   So you are going to need to be able to filter them out/in etc.  



You also probably would want a business rule that if the parent schedules changes it also change the users primary schedule entries but keeps the excluded child entries.    



You can learn more about it here: Resource schedules      



Someone like arun.vydianathan or ITSMgal who are SN employees and work on the PPS product could tell you if his approach is completely out of the intention of oob set up or not.


Our solution was something akin to this at the end of the day.   We added code that will allow us to override a user's calendar with the appropriate resource management calendar when an on-call schedule is created.   (Had to do some fancy footwork to allow child schedules to work as well.)