Introduction
Employee Central Position Management has features for employee job (matrix manager) relationships (second manager, Compensation Planner, HRBP, etc.) to be set and maintained automatically. Use of these features drastically reduces administration time and errors resulting from users not remembering to update the job relationships for an employee when processing hires or changes, and prevents matrix manager hierarchy errors (cyclical relationships) that can result when these are assigned manually directly on the employee due to the validation that occurs on the position object.
Like direct managers, matrix manager relationships are assigned as position to position relationships, so the best environment to use the matrix manager sync functionality is when employees inherit data from position they hold. So if you use position management in your Employee Central environment, I highly recommend looking into setting up matrix manager relationship sync as well! Depending on the chosen configuration settings, matrix relationship sync is triggered anytime an employee is hired, rehired, or has a position change. Matrix relationship sync is also triggered when a position has it's matrix relationship position changed (just like direct manager/parent position).
One of the really cool features for HR system administrators is the ability to to assign matrix managers by name as a user assignment on an organizational object (legal entity, division, etc. - whatever makes the most sense for your business process) that allows admins to quickly make bulk changes to matrix manager assignments for employees in the event of organizational restructuring or exit of a matrix manager using the Mass Change for Metadata Objects tool (with "Synchronize to Incumbents" set to "Yes").
I'll share my configuration steps below. All screenshots are taken from our SF test environment. After setting up this configuration I actually changed the configuration for our business needs that would have required less steps - see notes in red along the way and the update at the end.
I referenced these materials:
SAP Blog: Job Relationship Portlet and Syn with Position Matrix Relationship
SAP Blog: How to automate the process of adding a Job Relationship on change of a Business Unit
SAP Implementation Guide: Implementing Position Management in Employee Central, Matrix Relationships...
SAP What's New Viewer: Position Matrix to Job Relationship Sync Enhancements
Setup Steps Overview
- Add/Enable triggerMatrixRelationSync field in jobInfo entity in BCUI
- Update at least system admin permission roles grant visibility to new field
- Edit People Profile edit dialog to move field where you want it placed in UI
- Create Matrix Manager user field(s) on organizational object
- Create Matrix Manager position association(s) on position object
- Update Matrix Relationship for Position object to have type values from picklist
- Add matrix manager user assignments to organizational objects
- Create/Assign On-Change rule on organizational field on position object (to auto-update matrix relationships when org data changes)
- Create/Assign OnView business rule in BCUI jobInfo to default triggerMatrixRelationSync value to always be "Yes" for edit dialogs
- Create/Assign OnInit business rule in BCUI jobInfo for Hire/Rehire to default triggerMatrixRelationSync value to always be "Yes"
- Create business rule for and execute Mass Change Run to populate matrix position values onto positions
- Position Management Settings - turn sync to always on
Step 1
Add/Enable triggerMatrixRelationSync field in BCUI (jobInfo). I selected to add this field in the Position Information section so that it would be able to be located near the position number in the UI.
triggerMatrixRelationSync field in BCUI
Step 2
Grant relevant admin permission role(s) to grant visibility to new field. Employee Central Effective Dated Entities > triggerMatrixRelationSync
Granting field permission in Permission Roles
Important: users who are not granted any permission to this field will have a toggle displayed instead of the Yes/No field show in linked articles that defaults to false and CANNOT be controlled by business rules - even if sync is set to "Always" in position management settings. If you want users to be able to control if the sync occurs or not and be able set default behavior via business rules, you will need to grant view current/history or edit permissions for this field for all roles so that they see this field as a Yes/No field (and the business rule can default it to Yes) instead of a toggle.
Matrix Sync Toggle
Step 3
Move the field to where you want it placed in UI when employee job info is edited. Configure People Profile > Employment Information > Job Information > configure fields of Edit Dialog (may vary based on your environment)
Updating People Profile layout
Step 4
Create Matrix Manager user field(s) on organizational object. For our business processes, assigning at the Region(division) level made the most sense. Create custom fields to hold each required matrix manager type assignment using User data type. The field should default to being editable. Configure Object Definitions > Object Definition > Region
new custom user fields on organization object for Matrix Managers
Step 5
Create/Enable Matrix Manager position association(s) on position object. The association "positionMatrixRelationship" should be on the position object by default, but may have it's visibility set to "Not Visible." Change this to "Editable."
Position Matrix Relationship Association
Step 6
Update Matrix Relationship for Position object to use your matrix/job relationship picklist values. Configure Object Definition > Matrix Relationship for Position > matrixRelationshipType. In Details, add in your picklist name for the valid values source.
Step 7
Add matrix manager user assignments to all organizational objects (i.e. all Legal Entities, Divisions) so that business rules will have information to pull from in later steps.
Step 8
Create/Assign On-Change rule on organizational field on position object (to auto-update matrix relationships when org data changes on the position). I found I had some issues with the relationship position ID being populated for the initial setup if I didn't have both a create and set/update action. (I wanted the same rule to work for mass update of position objects as well as work when users edit or create new positions in the UI).
Scenario: Basic, Base Object = Position. Assigned as on-change rule to Region field on position object. Note: parent position is a system required field to create a matrix relationship, so I had the rule just reference the position's current value.
business rule to update positions matrix relationship position IDs when region is changed
Step 9
Create/Assign OnView business rule in BCUI jobInfo to default triggerMatrixRelationSync value to always be "Yes" for edit dialogs. (or add to existing rule if you already have an onView rule in place).
Step 10
Create/Assign OnInit business rule in BCUI jobInfo for Hire/Rehire to default triggerMatrixRelationSync value to always be "Yes." (or add to existing rule if you already have a hire action OnInit rule in place).
Step 11
Create business rule for and execute Mass Change Run (Manage Mass Changes for Metadata Objects) to populate matrix position values onto positions. Make sure to select "Yes" for "Synchronize to Incumbents" so that the job relationships are updated on the employee records!
Configure Business Rules > Add new rule > select "Update Rule for Mass Change Run" in Position Management section
Step 12
Position Management Settings - there are two settings relevant for Matrix relationships.
- Synchronization > "Synchronize Position Matrix Relationships to Job Relationships of Incumbents" - set to "Always"
- Import > "Execute Job Relationship Sync During Job Information Import" - set to "Yes" and "Sync Position Matrix to Job Relationship"
Important: if you have enabled the BCUI field (Step 1) and users select "No" or let the toggle default to off (Step 2) the matrix manager sync will NOT occur even if you have synchronization set to "Always" in position management settings.
Discussion/Behavior
Configured as above, with matrix sync set to "Always" in position management settings, here were the results of testing various transactions:
- If triggerMatrixRelationSync field was set to No, transfer of an employee to a new position resulted in update of job relationships
- If triggerMatrixRelationSync field was set to Yes, transfer of an employee to a new position resulted in an update of job relationships
- If triggerMatrixRelationSync field is not displayed, but toggle is displayed defaulted to Off, transfer of an employee to a new position did NOT result in an update of job relationships
- If triggerMatrixRelationSynd field was set to Yes, hire of a new employee automatically added job relationship records after hire transaction was approved
- If triggerMatrixRelationSynd field was set to Yes, Rehire of employee retained old job relationships if not deleted out in the transaction. If removed as part of the rehire transaction, after approval of rehire transaction, job relationship records were created automatically.
- Termination of a Matrix Manager - updates all matrix direct reports to old matrix mgr's manager - on employee Job Relationship records ONLY - does not update position assignments or relationships
- Transfer into a vacant Matrix Manager position - does not update Job Relationships for any matrix reports
Given for our business process, it would be an extremely unusual situation where we would NOT want matrix relationships to auto-sync and it is very easy to use the Mass Change Run to correct/update in bulk as needed, and the issues with the BCUI triggerMatrixRelationSync field appearing as a non-controllable toggle that would require auditing of many permission roles, I decided to disable that field. Thus eliminating steps 1, 2, 3, 9, and 10.
Setup Steps for Matrix Sync "Always"
- Create Matrix Manager user field(s) on organizational object
- Create Matrix Manager position association(s) on position object
- Update Matrix Relationship for Position object to have type values from picklist
- Add matrix manager user assignments to organizational objects
- Create/Assign On-Change rule on organizational field on position object (to auto-update matrix relationships when org data changes)
- Create business rule for and execute Mass Change Run to populate matrix position values onto positions
- Position Management Settings - turn sync to always on
Conclusion
It was unclear to me that the triggerMatrixRelationSync did not need to be enabled in BCUI to utilize Matrix Sync functionality from the documentation. It was also unexpected that the field would show as a Yes/No field for users that had view or edit permission granted to it but as a toggle that was unable to be controlled by business rules for users that did not have field permission granted. I expected that the toggle would not be visible if the position management setting selected was "Always" to sync.
However, our HR team is loving this new setup as automation of job relationship assignments was something that had been requested of the implementation partners, but had been told it was not possible. Now they only need to remember to delete off old job relationship assignments when performing rehires for most everyday transactions - the system takes care of the rest!