Human Capital Management Blogs by SAP
Get insider info on SAP SuccessFactors HCM suite for core HR and payroll, time and attendance, talent management, employee experience management, and more in this SAP blog.
cancel
Showing results for 
Search instead for 
Did you mean: 
karenperez
Product and Topic Expert
Product and Topic Expert
INTRODUCTION

In this blog post, you can learn how we can identify a manager based on the Position hierarchy instead of the direct report's structure.

Sometimes the managers can have all positions below them as vacant and from a standard system point of view, they are not considered a manager as they do not have direct reports.

Some customers require to be able to assign specific permissions to their managers, for example, the permission to create a new job requisition for vacant positions, and in the case above, it would not be possible since they are not considered as managers. So how to identify these cases to consider them a manager?

To achieve this requirement of assigning permissions to a manager that has no direct reports, only vacant positions, the following solution is proposed.

 

PROPOSED SOLUTION

Step 1. Create a custom field in Employee Profile (Data Model XML) to identify if the employee is a manager with a picklist 'yes' or 'no':


Image from SAP SuccessFactors Demo: Employee Profile Custom Field


Step 2. Create a custom field in Job Information to control if the employee’s position is a manager position or not and map it to the EP custom field, using HRIS Sync Mappings (see screenshot below):


Image from SAP SuccessFactors Demo: Job Information Custom Field and mapping


Step 3. Create a Business Rule as per the following to control if the employee’s position has any child position (does not matter if the child positions are vacant or has incumbent). This rule will populate the Job information custom field = "Yes", or "No" as appropriate.


Image from SAP SuccessFactors Demo: Job Information Business Rule


The recommendation is to add this rule in the configuration as onChange in the Position field and onSave in the Job Information because in case there is any update in the position it could trigger an update once any change is performed in the Job Information.

Once all the above steps are completed, you can use the custom Employee Profile field as criteria in the granted population permission group, to assign the necessary permissions to all managers.

Permissions Considerations

As the proposed solution depends on Business Rules it is important to remember that business rules run/update fields which the user have view permissions, at least, so please remember to grant the view permission of the new field to the roles which will run process in the system.

CONCLUSION

This blog post described how we can identify a manager based on the position structure, instead of the direct report’s structure.

Please bear in mind that It is a simple and effective solution already implemented for a customer where the requirement was to assign the job requisition creation permissions to all managers, for all positions, not only their child positions, so this is why there is no need to identify any specific target population, but all.

For additional business scenarios on how to apply SuccessFactors Business Rules, I
would definitely recommend checking out the Employee Central: Optimizing Business Rules for Select Business Scenarios IDP (Implementation Design Principle).

Looking forward to your comments and questions.

 
30 Comments
Smitha
Product and Topic Expert
Product and Topic Expert

Hi Karen,

This is quite a helpful blog on how to handle job requisition creation permission for managers with no direct reports but only vacant positions under them.

Cheers, Smitha

 

karenperez
Product and Topic Expert
Product and Topic Expert
0 Kudos
Thank you very much Smitha!
SoraiaLatif
Product and Topic Expert
Product and Topic Expert
Hi Karen,

This information is really useful. Thank you very much for sharing.

Best regards,

Soraia
karenperez
Product and Topic Expert
Product and Topic Expert
0 Kudos
Thank you very much Soraia!
ChrisPaine
Active Contributor
Hi Karen,

How do you handle the update of the position when a subordinate position is added under it?

Is there a process which runs in integration Center to check and update the flags? And if so, how do you then cause the sync and update of the employee record?

Thanks,

Chris
karenperez
Product and Topic Expert
Product and Topic Expert
0 Kudos
Hi Chris, thank you for your question.

Thinking about this scenario, I would propose a different approach. In summary, would be to create the flag 'Manager' in the position object as well and create an Integration Center to map the object flag to the job information flag where the trigger is the Intelligent Service 'Update to a Position' event.

Does this answer your question and make sense for you?

Best Regards,

Karen Perez
ChrisPaine
Active Contributor
Hi Karen,

I don't think that will work.

The problem is that the update of a superior or subordinate position does not directly trigger the update of the corresponding subordinate or superior position. Which would then trigger the associated update of the linked job information record.


Until such time as the solution (SAPSF) enables functionality, I think anything we do will have flaws, we just have to be aware that they are there and do our best to acknowledge them and put in work arounds.

I could build you a Cloud Platform extension that could fix this, but it's not going to be worth the expense compared to the solution you already documented (despite it not working in all cases).

What I'm trying to say is that things don't have to be perfect to be worthwhile, but we should be very careful about claiming anything solves all problems.

Cheers,

Chris

 

 
karenperez
Product and Topic Expert
Product and Topic Expert
0 Kudos
Hi Chris,

Thanks for sharing your thoughts and I do agree, the idea is not solve 100% of the use cases, but at least the one presented.

I was 'playing' in my demo and for you to identify all the positions that are parents of others as you were referring to, including the newly created ones, you can do the following.

Create a custom object (Lookup) with two fields only (Position Code, Parent Position). This MDF object can be automatically populated via IC as simple as in the example below (Position entity):


Image from Demo


After this you have to create an onSave rule in the Position object as per below:


Image from Demo


 

In summary, you are updating the 'flag' at the position level and this can be propagated to the Job info.

Does this make sense for you?

Thank you again for pointing out good cases so it gives all the opportunity to think more and more about solutions.

Best Regards,

Karen Perez
Harsh88it
Discoverer
0 Kudos
Hi Karen,

 

In the last solution from IC - How do system identify that the Manager position is being updated (For On Save to work).

The position which is getting updated is employee position so how business rule will identify and update manager position.

 

BR,

Harshit

 
mmadalinast
Discoverer
Hi guys, can this be enhanced with an Off Cycle Event Batch rule ?

If you create an Off Cycle Event Batch rule to update the field in Job Info whenever the Number of Child Positions is greater than 1 and schedule it to run every day at a certain hour?

Any thoughts on this solution?
m_bacskai
Participant
0 Kudos
Hi karenperez ,

I suppose the "Position Number" that you use in your business rule (Job Information Model.Position.Value.Position Number) is the field that companies use as job code or position ID , right? At least I don´t have a field called "Position Number".

Best regards, Maté
karenperez
Product and Topic Expert
Product and Topic Expert
0 Kudos
Hi m.bacskai,

It is the Position Code field, standard. It is called "number" instead of "code" in my demo examples below, but you may find as "Position Code".

Thank you.

Best Regards,

Karen Perez
m_bacskai
Participant
0 Kudos

Hi Karen,

I configured the attached business rule and added it to the Position as an "On Change" rule and to the Job Information as an "On Save" rule. I would like get an email notification if somebody gets child positions but I haven´t received any.


In the Workflow configuration I only created a "CC role" with an E-mail Template.
karenperez
Product and Topic Expert
Product and Topic Expert
0 Kudos
Hi m.bacskai,

Did you assign the rule on saveAlert? I am asking because you mentioned onSave, and for alerts it should be saveAlert.

Thank you.

Best Regards,

Karen Perez.
m_bacskai
Participant
0 Kudos
Hi Karen,

Yes, it was assigned as "saveAlert". We are reviewing it internally why the email notification is not generated.
karenperez
Product and Topic Expert
Product and Topic Expert
0 Kudos
Hi m.bacskai,

In your rule, I am missing by when the alert is supposed to be created, like the below:


Did you try adding it and running your test?

Thank you.

Best Regards,

Karen Perez
m_bacskai
Participant
0 Kudos
I set the Alert Effective Date to "Today". And I made a test (assigning one position as the higher level position of another position) I used today´s date for the position change and saved it. Unfortunately no Notification was triggered.
karenperez
Product and Topic Expert
Product and Topic Expert
0 Kudos
Hi m.bacskai,

Ok, so your test case is that you are changing the position, not the job info. So I would recommend that you have first a rule at Position Object level, which fills a "Managerial" field in the position, and this Position change syncs to the job info of the affected employee where the alert is created.Or, you create an alert at the position object, without any sync from Position to Job Info.

Does this make sense for you?

Thanks,

Karen Perez
m_bacskai
Participant
Thank you! I was hoping that we won´t need a "Managerial" field on the position if we can generate alerts just based on the number of child positions (1 or more). If there is no other option then we will implement a new "Managerial" field on the position.

Thank you for your support Karen.
0 Kudos
Can you please prepare a detail blog on this solution.
karenperez
Product and Topic Expert
Product and Topic Expert
0 Kudos
Hi satasree.paul,

Sorry, which solution are you referring to?

Thanks,

Karen Perez
0 Kudos
Hello Keren,

Thank you for your reply.

We have a custom field called "IS Manager" at position object level. I have taken a reference of your blog and write a Business rule


 but issue is update of this custom field (IS Manager) is not happening automatically at position object level if any position is assigning under to any new/ existing position, it is only getting updated if we are updating that parent position again.

Is there any other way custom field (IS Manager) at position object level will update automatically if any lower level position is assigned under the position.

Thanks,

Satasree Paul
karenperez
Product and Topic Expert
Product and Topic Expert
0 Kudos
Dear satasree.paul,

In this case you may have some options.

You can use the Intelligent Services to trigger, for example the below ones:


Image from Demo


 

Or you can create an Integration Center, which can run daily, weekly, etc, and checks all positions that have child assigned and mark the "Managerial" field to yes, or mark as no, in case it becomes a non manager position.

I hope this helps!

Thank you.

Best Regards,

Karen Perez
0 Kudos
Hello Karen,

Thank you for your suggestion.

Initially I have requested for a detail blog on this this topic only,how we will update custom field in position object with help of intelligent Center.

May be my request is not valid, still hoping if you can write a detail blog on this.

 

Thanks,

Satasree Paul
karenperez
Product and Topic Expert
Product and Topic Expert
Dear satasree.paul,

Understood! I will try to block some time for this case, but I cannot promise soon, sorry for that.

Thank you.

Best Regards,

Karen Perez
karenperez
Product and Topic Expert
Product and Topic Expert
0 Kudos
Dear mmadalinastoica,

Sorry, I missed your comment. When it does not tag us, we miss.

Yes, definitely the off cycle is an option too and a good one I would say 🙂

Below a sample example:


Image from Demo


Thanks for proposing this option, Maria.

Best Regards,

Karen Perez
Noune
Explorer
0 Kudos

Hi Karen,

Related to the offcycle batch, I have an impression that  when it runs overnight it only takes into account the records that have an event (child position incumbents) and does not run on records that are necessary to be updated (users who have new child positions, or people who do not have child positions anymore).

I believe there are many interested people in the subject of tackling the cases, when child positions are added or removed, and "Is Manager" field is triggered on Parent position incumbent. Hope you can create a new blog on this topic.

 

Thanks,

Noune Melkonyan

karenperez
Product and Topic Expert
Product and Topic Expert
0 Kudos
Dear nmelkonyan1,

Are you referring to detail the solution that I briefly added in here?

I need to block some time to work on it.

Thank you.

Best Regards,

Karen Perez
samueldenys
Explorer
0 Kudos

Thank you so much Karen, 
This is very helpful!
Regards,

Samuel

ibrahimelajjo
Explorer
0 Kudos

Hi @Karen,

Why is it needed to create also a field in EP, which will be synced from the Job Info? Just having a Job Info field is not enough?