Skip to main content

Version 9.1.237 (15 June 2026)

Job Management

Request a job structure import on the creation of a new job profile or position. Standardise the Save of profile and position. Return job profiles without positions when syncing job structure to V8 (#151154)

Problem

  • On creation of a new job profile or position a job structure import to V8 is not run. On saving the position of the profile, the behaviour is not the same. 

Solution

  • Request job structure import on creation of a new job profile or position. Return all job profiles, even if they already have a position linked to them or not. Change Save behaviour to be the same for a job profile and position (save, redirect and display created successfully)

Force refresh after copying a job position (#151286)

Problem

  • The Job Profile's page requires a refresh to show the newly added position

Solution

  • Use a table reload to ensure it shows.

Resolved error where the user was not able to add an org if the org code was deleted previously (#151120)

Problem

  • When a user imports or adds an org on the front end that has the same code as an org that was previously deleted, the org does not get created.

Solution

  • Updated the index on the table to exclude deleted orgs. Updated the queries to exclude deleted orgs.


Report Builder

Fix sub report not returning data (#151337)

Problem

  • The count shows a load indicator, but no raw data pops up. This happened due to the report filter criteria being built incorrectly, which resulted in an empty result set. 

Solution

  • Ensure the filter criteria are generated correctly. 

Ensure report view table data is left-aligned (#151519)

Problem

  • Column contents centre or right aligned

Solution

  • Ensure the report view table data is left-aligned 

Ensure only active sub reports are included when exporting (#151465)

Problem

  • When exporting a report, it also includes deleted sub-reports 

Solution

  • Ensure only active sub-reports are included when exporting a report 


Performance Management

Updating displayed error message (#151340)

Problem

  • When adding a document link, users only receive a generic "Invalid document link" message.
  • This does not clearly indicate whether the URL format is invalid or whether the domain is not included in the approved whitelist. 

Solution

  • Added client-side URL format validation to verify that the entered value is a valid URL before submission.
  • Invalid URL formats will continue to display the "Invalid document link" message.
  • If the URL format is valid but the domain is not whitelisted, the system will now display the more specific validation message returned by the server, providing clearer feedback to the user.

Exclude inactive Master Data items from new contract creation (#147678)

Problem

  • When section items are made inactive in Master Data, they still appear linked to review setups.
  • When creating contracts from this setup (or copied from a template, or previous), the inactive items are created on the new contract, causing errors during creation since the inactive Master Data cannot be retrieved.

Solution

  • Ensure that inactive items are excluded when viewing the Review Setup and when copying/creating a contract.

Resolve bug where Check Ins comment label overlaps typed comment (#151030)

Problem

  • When typing a comment into the Check Ins modal, after the text area loses focus, the label overlaps the typed text 

Solution

  • Replace the default HTML textarea with MDBTextArea, which handles the floating label state automatically.

Resolve the issue where a user without a performance manager cannot create a contract (#151445)

Problem

  • User's that do not have a Performance Manager cannot access PM to create their contracts. They should be able to create the contract, but not be able to submit objectives.

Solution

  • Corrected the issue on the query returning user available review year setups, which was excluding users who do not have performance managers.

Prevent duplicate section links when copying (#151533)

Problem

  • When VB and LB are active, but no items are linked to the review setup, both the previous contract items and all the library items are copied to the new contract in case of multiple periods, causing the creation to fail

Solution

  • Add checks to avoid re-linking ValuesAndBehaviours and LeadershipBehaviours items when copying a contract period if those sections already exist on the target contract period.
  • The conditions now verify contractPeriod.ContractPeriodSections doesn't already contain the section before falling back to link master-data items (LeadershipBehaviours still respects allowLeadershipBehaviours).
  • This prevents creating duplicate section entries during the copy operation.

Enforce culture-insensitive transfer of decimal data when saving performance data (#147853)

Problem

  • When performance management decimal data, such as weights, is saved, the current server culture sometimes causes the values to be received as 0, causing validation to fail

Solution

  • Add the FlexibleDecimal attribute to allow replacing culture-specific decimal characters like commas with periods during model binding 

Ensure Activities, Measures, Ratings subsections are hidden on check-ins modal when empty (#150987)

Problem

  • When a KPI has no activities, measures or ratings, the subheaders for the items still display on the Check-Ins modal

Solution

  • Ensure that when either has no data, the header is not shown on the Check-Ins modal 


Imports

Keep the latest termination date if no current or future appointments are found (#151609)

Problem

  • When using the pre-import script, it filters out terminated employees when there are no current or future appointments for that user.

 

Solution

  • Keep the latest terminated record IF there were no Current or Future Appointments

 

GRPC Unauthenticated Error (#151197)

Problem

  • The import service gives an unauthenticated error during the user import.

 

Solution

  • Add an Allow Anonymous to the newly added method.

 

Add pre-import step for User Imports (#149150)

Problem

  • There should be an option to have custom user import steps prior to the staging happening in the Account Database.

 

Solution

  • Add functionality for custom import steps on the Import Service, before staging the data in the Account database.
  • Added a custom import script


Exports

Fix PaySpace organisation and position create/update (#150845)

Problem

  • PaySpace pushes were failing for several setup-dependent cases in the payroll integration.
  • Root organisations could be sent with an invalid parent, employee custom fields could be overwritten or omitted during updates, and position updates could fail when PaySpace required grades or when an existing position row belonged to a closed payroll run.
  • Newly created organisation units were not added back into the in-memory PaySpace organisation list for the current run, and the closed-run position fallback depended on a generic exception message instead of the PaySpace API response details.

 

Solution

  • The push now uses PaySpace upload codes as the stable organisation match, preserves existing employee custom fields when updating employees, sends grade values when pushing positions, and avoids reusing old position effective dates when a position change needs to be sent.
  • Newly created organisation units are available for the rest of the same push run, and preserve structured PaySpace API response details when position updates fail, so the closed-run retry is based on the API response body instead of a rethrown generic message. 

 


Notifications

Extensive Unit Tests for NotificationServiceLevel on Account service (#150982)

Problem

  • Some services have many event codes and recipients which trigger emails. Each event/recipient triggers an email with different data and for different people
  • During development, when these queries are altered for specific cases or a new event/recipient, developers might not test other emails which also reuse that query, nor do testers know whether a query has been reused and adjusted to accommodate the new case.

 

Solution

  • Add new Unit Tests for Account Service for each 'switch' case with the correct business rules to ensure that, should a request be given to test that query, it will produce the same results as expected using IMock and MockData for repositories

 


People Management

Fix Manage Own Data permission not working (#151271)

Problem

  • Manage Own Data permission not working

 

Solution

  • Fixed the permission checks so users can only edit their own personal details when ManageOwnData is enabled.

 

When the ID number is changed on the person summary page, also update the identity ID number for 2FA (#151170)

Problem

When updating the ID number on the people summary page, the ID number in Identity is not updated.

 

Solution

  • Add vm.Biographical has changed to the condition that triggers UpdateIdentityUserAsync, so Identity is updated when biographical fields change.
  • Also, reformat the if condition across multiple lines for readability.

 

Remove the user login history tab from my preferences (#151293)

Problem

  • The My-Signins page has been moved to the audit section on the user profile and enhanced. The Signins on my preference is deprecated and no longer accurately shows a user's sign-ins

 

Solution

  • Remove the Login History UI from the account user view. This deletes the _LoginHistory.cshtml partial and removes the corresponding nav-link and tab-pane rendering from Index.cshtml (including the LoginHistoryViewModel creation/render call). Cleans up the user account page by removing the sign-in history feature and its markup.

 

Add confirmation modal for job positions (#151300)

Problem

  • Job positions should have a confirmation modal similar to Job Profiles when copying

 

Solution

  • Added a new modal and the same copying functionality to Job Positions

 

Resolve issue where active positions linked to inactive profiles could not be found on the org after being linked (#151113)

Problem

  • Position does not show after being added to the org node 

 

Solution

  • The check about active positions was extended to check for active job profiles also. The same was done for the inactive check

 


Translations

Resolved translations (#151488)

Problem

  • Incorrect translation used
  • When submitting from Ajax through a handler, the basePage Model of translation T() has no translations anymore due to the page dropping the list reference and needs to be refreshed from cache 

 

Solution

  • Added a correction to the translation to be retrieved from cache on ajaxHandlers called

 


Data Warehouse

Updated C_03549_99999_monGenerateDWHDataIntegrityReport to align with Materialsed changes (#151372)

Problem

  • The script is failing due to materialised changes 

 

Solution

  • Updated C_03549_99999_monGenerateDWHDataIntegrityReport to align with Materialised changes