Compensation Planning | Troubleshooting

Data only users interfere with Compensation Plan

When you are setting up the plan, make sure you select managers who can log in to WX to complete their salary or bonus plans as planners.

Error with no detail returned when refreshing a plan

Try refreshing the plan again in the HR Manager portal. This often results in a more detailed error message.

"CANNOT_INSERT_UPDATE_ACTIVATE_ENTITY ..." error

Error reads:  "….CANNOT_INSERT_UPDATE_ACTIVATE_ENTITY…": 

Screenshot: Error message. "Update failed..."

To resolve: 

  1. Turn off any Workflows Rules, Process Builder processes or Flows triggered from the Employee Plan, Employment Record, or Salary objects.

  2. Go to the Top Planner, open the plan, set the Status to Approved and save the plan.

  3. Commit the plan.

Refreshing a plan does not update the refresh date

There is a problem with the data in the plan. This can be caused by manually adding a planner when it was already in progress or manually deleting a plan. Adding planners when the plan is in progress is not currently supported. As a workaround, you can create a new plan for the missing planners and use exclusion formulas to add the team members required.

  • To identify a planner without a plan, you can run an anonymous Apex query.

    1. Select Setup and then select Developer Console.

    2. From the Debug menu, select Open Execute Anonymous Window.

    3. Paste the query from the following code snippet into the Enter Apex Code window:

      Copy
      Query for identifying planner without a plan
      List<spcompplan__plan__c> plans
      = [select id, spcompplan__planner__c from spcompplan__plan__c 
          where name= :'Plan Name'];
      List<spcompplan__planner__c> planners
      = [select id, spcompplan__team_member__c from spcompplan__planner__c 
          where spcompplan__plan__r.name= :'Plan Name'];
      Set<Id> plannersWithPlan = new Set<Id>();
      for(spcompplan__plan__c p : plans) {plannersWithPlan.add(p.spcompplan__planner__c);
      }
      for(spcompplan__planner__c planner : planners){
      if(!plannersWithPlan.contains(planner.spcompplan__team_member__c))
      {System.debug('### ERROR PLANNER WITHOUT A PLAN => ' + planner);
      }
      }
    4. Modify the query to replace Plan Name with the actual name of the plan in the two places it occurs in the query.

    5. Select the Open Log checkbox and then select Execute.

    6. At the bottom of the Execution Log view, select Debug Only, and look for messages starting with ###.

    7. Make a note of any planner names in the debug lines.

  • To find the planner records so you can remove them, you can run another query.

    1. In the Developer Console, select the Query Editor tab.

    2. Paste the query from the following code snippet into the Query Editor window:

      Copy
      Query for identifying planner records
      SELECT id, spcompplan__Team_Member__r.Name, spcompplan__Plan__r.Name 
      FROM spcompplan__Planner__c 
      WHERE (spcompplan__Team_Member__r.Name = 'Name1' 
      OR spcompplan__Team_Member__r.Name = 'Name2'
      AND spcompplan__Plan__r.Name = 'Plan Name' 
    3. In the Query Editor, replace Name1 and Name2 with the names of the planners returned by the previous script.

    4. If necessary, add more spcompplan__Team_Member__r.Name items separated by OR.

    5. Replace Plan Name with the name of the overall plan.

    6. In the Query Editor, select Execute.

    7. In the Query Results, delete any rows returned.

"Access Denied: OP_READ on spcompplan__Plan__C" error

Make sure you have assigned the appropriate permission sets to users:

  • Team members: Sage People Platform Team Member Compensation Planner

  • HR Managers: Sage People HR Manager Compensation Planning Configure

  • HR Administrators: Sage People HR Administrator Compensation Planning Configure

"Fetching details for planners failed" error

Review all team member records and confirm all have an active manager. If you cannot find any team members without manager, review the data for any circular reporting relationships. For example, team member A reports to manager A, yet manager A reports to team member A. Using a report and including the Reporting Line field can be helpful identifying such records.

"Some Team Members do not..." error when selecting Ready to Plan

When you select Ready to Plan for a compensation plan, Sage People runs checks on the team member data included in the plan. For the kinds of checks run, see Ready to Plan checks. Review the details of the error and then review the team member records.

"Unable to process this request. Check for null values" error

Review all team member records and confirm all team members have an active manager.

Checkbox formula is not working correctly

Review your formula. When creating checkbox formulas make sure you do not use quotation marks around the values.

For example:

Copy

Example formula for a checkbox field

IF(fHCM2__Start_Date__c < DATE(2020,12,31), TRUE, FALSE)

If you use quotation marks around the TRUE and FALSE values, they are interpreted as text strings rather than Boolean logical options, and the formula does not work as expected. For more information, see Formulas.

The End Date on a Compensation Plan needs to be changed but the Compensation Plan is already in progress

You can update the End Date:

  1. Create a tab to display the Plan object.

  2. On the Plans tab, create a list view and display the End Date field.

    The list view display a row for each planner defined in the plans.

  3. If necessary, filter the list to only show the plan in progress.

  4. Select the checkboxes for all the rows, edit the End Date for one of the rows and select the Update NN selected items checkbox.

  5. Select Save.

    When the End Date is in future, the plan displays in WX and the planners can submit their plans.

Compensation plan is reverting to draft after selecting Ready to Plan

To resolve, check the following:

  1. Check for circular reporting relationships.

  2. Check if you have any active Flows, Process Builder processes or Workflow Rules updating Employment Status. Deactivate it, select Ready to Plan on the compensation plan. If this resolves the issue with the compensation plan and the plan moves to In Progress, consider if you still need the Flow, Process Builder process or Workflow Rule. If yes, review its details and the best practices for process automation.

"REQUIRED_FIELD_MISSING" missing error or "Attempt to de-reference a null object" error

Error reads either: "Insert failed. First exception on row...; first error: REQUIRED_FIELD_MISSING,

  • Required fields are missing: [fHCM2__Employment__c]: [fHCM2__Employment__c]

or

  • Attempt to de-reference a null object.

Delete the Employee Plan records that include deleted team members and start a fresh plan. The error is caused by a team member included in the plan being deleted before the plan was committed.

Other items to check:

  1. Make sure all active team members have an active employment record.
  2. Make sure all active team members have an active salary record with currency and amount populated. Amount must be 1 or more.
  3. Make sure all bonus records have amount and currency populated. Amount must be 1 or more.
  4. Make sure all team members to be included in the plan have a manager.
  5. Make sure there is only one manager in the org without a manager (one top manager).
Tip

In a sandbox, you can try to drill down for a more meaningful error by creating a new compensation plan to match the one with errors. The validation checks after selecting Ready to Plan can help identify the issues you need to fix in the plan that is rendering the error. You can then delete the new plan in sandbox.

"No such column" error in the Salary Batch failed email

The user committing a plan receives an error email and the plan is partially committed. The email contains a message similar to:

"The Create Salary Batch has failed for the [plan name]. No salaries have been changed and the [plan name] has been reset to Approved status.

No such column [field name] on entity [object name]. If you are attempting to use a custom field be sure to append the __c after the custom field name. Please reference your WSDL or the describe call for the appropriate names."

Ensure the field mentioned in the email has field level security set to Visible for the Profile used by the user who received the error:

  1. Go to Setup > Object Manager, and select the object hosting the field

  2. From the sidebar select Fields & Relationships.

  3. Select the Field Label for the field.

  4. On the field definition detail page select Set Field-Level Security.

  5. Check Visible for the Profile assigned to the user who received the error.

  6. Select Save.