Add Custom Business Objects to the Employee Resource Calendar
A manager needs to know who is assigned what work in their team, in order to effectively assign people to the right tasks for the right time.
The goal of the Business ByDesign Employee Resource Calendar is to fulfil this need. We want to reduce our customer’s dependency on tools like excel, rather we want to help our resource calendar provide a central view of work assignment. One of the challenges we know is that there are more types of work that people are assigned to, that can be effectively represented in the standard ByDesign product.
One way to With the 2102 release of SAP Business ByDesign, a new business object is made available in the Public Solution Model called the Resource Calendar Generic Work Assignment. Using this business object, employee-work assignments based on custom solutions that are build using the ByD Cloud Studio, or those captured by an external solution can be added to the employee’s resource calendar.
This business object serves as a kind of interface, using which a partner can add their custom work objects to the standard resource calendar.
Some of the available features:
- Control on when the custom work items should be present in the Resource Calendar
- Choice of which work assignment affects employee availability
- Ability to decide a custom work distribution
- Support for work hierarchy – Just like how you see a hierarchy for project assignment – project at the root followed by the project task and underneath that, the service – you can code for a parent child relationship between different work assignments.
I would explain the above features in more detail, in a separate blog post. For now, I would like to show you an example of what you can build.
Example custom solution: Training Course Assignments
I created a very simple application in the ByD Cloud studio that allows a user to add training courses to employees.
Let us first take a look at the resource calendar for employee Peter Sellers. This is accessed from the Resource Management work center, from the Resource Search work center view. As you can see, Peter Sellers is pretty free over the next few weeks – he is assigned only two projects.
Now I open my custom application that is assigned to my user – I’ve called this work center Custom Work Assignments. I go to the Training work center view, where I can see the employees who have been assigned to training courses.
I now click on the “Send to Resource Calendar” button. I tied this button to an action on the Resource Calendar Work Assignment BO, that allows the standard work distribution algorithm (that is used for the project work distribution) to operate on the Training assignments I just made.
If I refresh Peter’s resource calendar, you can see the “In Process” icon against his name – showing that the new custom work objects are causing a recalculation of employee availability.
After a minute or so, I refresh the Resource Calendar, and can see that the Training schedule that I created out of my custom application is now part of the standard Resource Calendar ! The availability calculation also takes this into account – you can see by the reduced number of available hours for the affected weeks.
Enabling usage of Resource Calendar Generic Work Assignment
Its usage is only supported for the Resource Management solution that is based on the planned work of the employee. It is not supported for the solution that is based on the committed work.
As mentioned earlier, I would write a separate blog post that explains how I’ve used this interface to add my custom object into the Resource Calendar, leveraging the standard work distribution mechanisms that are used for Projects.
I would be super interested to hear what kind of solutions you would like to build for the resource calendar. You can contact me via messages, or can put in a comment below if you would like to have a chat.
Thank you very much for reading !
I cannot believe I missed this. Thank you Sandeep Dinesh Janardan we will test this on our side.
I have a question around this BO actually. Did you release it only for partners to manipulate it and insert new values to it, or do SAP also uses it to store your own Work Packages assignment done through Period Plans.
I an wondering if I could use this BO to also manipulate already created Period plans from it. But I think I cannot retrieve these period plans from the generic work assignment and need to go back to the project. Am I right?
Thank you for your attention
Hello Jacques-Antoine Ollier
SAP uses the Resource Calendar Generic Work Assignment business object to include the service order assignments in the resource availability calculation - see Service Order Dispatching in SAP Business ByDesign | SAP Blogs - this was part of release 2202.
This business object would not be used for projects - as there already is an existing mechanism for its inclusion in the resource calendar. So yes, to view the period plans, you would need to read the project business objects.
Ok that is what I thought and found from my backend analysis.
Thank you very much for confirming Sandeep Dinesh Janardan !
I will continue my research on what we could do.
Hi Sandeep Dinesh Janardan
Thanks for the blog. We are trying to create Resource Calendar Generic Work Assignment from an action of custom object. But we are not sure of what needs to be filled for few parameters. Can you please help us on this.? We are able to create an instance on the Resource Calendar Generic Work Assignment object. However nothing is visible in the resource calendar of the employee.
Awaiting your reply. Thanks in advance.
Hello Venkatesh Govindan
The "Reference" attributes that you have outlined are not required for their display in the resource calendar. - these parameters are helpful for any custom logic you can execute for the object categories. We use exactly the same business object to display the assigned service order items in the resource calendar of the employee.
In order that the resource calendar reads the information, and calculate employee availability based on it, we need to call the action "TriggerWorkDistribution" that is on the Work Item node.
Hope this helps !
Hi Sandeep Dinesh Janardan,
thanks for sharing this blog with us.
I am trying to implement this with multiple levels, meaning that I want to get a 4-level structure with 3 WorkItems and 1WorkAssignment.
Therefore I write the UUID of the root-WorkItem into the ParentWorkItemUUID of the second WorkItem and so on. Code for 3-level structure.
My result is a valid 3-level structure, but I am missing the description of the "head" node.
Can you tell me what is wrong?