Version 9.1.211 (4 March 2026) People Management Add handling to not do PG update with rowlock when no data to update (#144529) Problem Situation where if the current activity is on materialised PeopleGroupUsers, but there is no data in the table for the PG, then the rowlock causes performance issues.  Solution Wrapped the table update with the row lock in an if to only run if there is data to update. Refactor People Management tab queries to increase performance (#144529) Problem In some instances, the queries to fetch MyTeam / MyDepartment / MyCompany / PeopleGroupUsers times out or takes an excessive amount of time to complete. 2 calls are made as subqueries to determine 1) The number of subordinates for the user 2) Whether the user is my manager.  Solution Changed the 'My Manager' check by fetching the user's manager beforehand into a variable and then comparing the result userid against that variable. Moved the subordinate count outside of the main cte query by first selecting everything into a temp table and then calculating and updating the subordinate count after the fact as a batch update. Some minor changes to React for mapped key uniqueness. Correct people group materialisation clearance when the list of people group's users is fetched (#143861) Problem When V8 request the people group users from V9, and some PGs have been materialised, and some have not been materialised, it causes the materialised people groups to be cleared. Only the unmaterialised PGs are to be returned.  Solution Ensure only the calculated people groups are included when deleting the materialised people group users Hover on Profile picture displays incorrect tooltip text (#144474) Problem Hovering on the profile picture displays incorrect tooltip text  Solution Fix incorrect casing used for the translation key, causing it not to find the correct value Extended compression type selection on User Edit Profile (#143713) Problem New change implemented in the account to not set the first selection, but not added withinthe  image resources Suggestion to clear tags after file change Solution Pass true value Add clear Keywords When a front-end user appointment fails to create, revert user creation (#144275) Problem Should a front-end user creation be successful, but the appointment fails, a message is shown for the user, but if the modal is closed and later tried to appoint/recreate, it says the user already exists. Solution Add change should the appointment creation fails, revert/delete the created user Job Management Fixed copying of reporting lines on the user summary page (#143977) Problem The copy manager function for reporting lines on the user summary page is not working. Solution Included the JS file with the function and added the needed hidden fields. Uploaded Evidence only appears on Inherent Requirements after a Hard Refresh (#144492) Problem When opening the modal, a global let is set, which is not reset Solution Correct to pull the data-attribute directly An error appears when deleting Required Evidence Files (#144493) Problem Incorrect id attribute was retrieved to be passed for deletion  Solution Correctly retrieve the id for the document deletion  Previous delete reason gets cached when deleting evidence documents (#144494)  Problem When a user opens the modal, it keeps the previously entered value  Solution Reset the value to the default when opened  Imports Implemented visual enhancements to User Imports (#144481) Problem User Import triggers a few other imports, but no visual knowledge of that  Solution Add an indent to the types that are included as part of the User Import Add change to sync in partial for last edited date (#139776) Problem When syncing data from V9 to V8, all data is pulled that is currently on V9, not just changed data. This caused the API calls to return very large datasets each time the APIs are called. Solution V9 In each of the APIs below, implement an additional filter ChangeAfterDate ChangeAfterDate is a nullable datetime field The ChangeAfterDate should be used to only return the data with an edited date after the date When the date is null, then all data must be returned The edited date of the main table, along with the relational tables, should be considered, e.g. Account.Users.EditedDate, Account.Genders.EditedDate etc. On the Ruleset | Integrations tab, split the push buttons into two All Data This will import all data from the start of time. All Data from the last change This will only import the data from the date of the last successful import on V8. Keep as is Theme Import APIs User Import People Group Import Use the People group table as well as the materialised log table to determine changes User people group permissions Use the link to the user and the roles' edited date Add a field in Jobprofiler.MaterialsedUsers.PeopleGroupChangedDate, which is populated when people groups are removed from a user User roles Check the edited date of the user role Add a field to the account.Users.RolesChangedDate, which is populated when roles are deleted from a user Reporting Lines Use Jobprofilers' reporting lines edited date to fetch the changed data Job structure Check the edited date of the JobProfile, Position and Org nodes as well as their linked master data, to determine a change Org structure Check the edited date of the Org nodes as well as their linked master data, to determine a change Appointment Use the edited date of the appointment Add a field in Jobprofiler.MaterialsedUsers.AppointmentChangedDate, which is populated when appointments are removed from a user When any appointment has changed for a user, return all appointments for the user V8 Add a table sysSuccessfulSyncLog This table only stores the import types, with the date they were last successful This table is then used to determine the date to include for ChangeAfterDate when the APIs are called Alternatively use sysProcesslog Display the import completion date stored on V9 after successful completion. Ruleset Management Resolved event handler not being triggered on system menu click (#144569) Problem The off method is called, which removes all the event handlers from that element, so only the very last defined event is added  Solution Correctly remove the same event specified to be added Communication Portal Implemented Communication Priority Master data item (#140896) New Development Add Master Data for the Priority to be set when creating notifications Implemented Master Data Communication Category (#140897) New Development Add Master Data for the Category to be set when creating notifications Implemented import for Master Data (#140898) New Development Add an import for Master Data to be available in V8 Added handling for external system message (#140899) New Development Added functionality so that a V8-triggered mail can be sent as a System message Organisational Structure Load org nodes on org structure page on demand (108648) Problem Org node loaded all org structures (including children) from the server, which can cause performance issues on the browser if there are alot of structures. Solution Load only top level org structures on first page load and load the rest as the structure is expanded. Content Management Implemented a new change to be able to delete a signing document (#143364) Problem When an assessment attempt has been signed, there is currently no way to ressign it from the front end Solution Path : Manage Employees > Select Employee > Employee Development > Assessment List In the drop next to the assessment (see below), create an item "Reset signing" It should only be available if one of the attempts was signed digitally When selected, the user is prompted for a reason (free-text) and a message, "PLEASE NOTE: This action is not reversible and will remove the digital document." The reason is saved against a new field in abAssessmentsAttempts.ResetSigningReason When the reason is completed, and the user clicks Continue Remove the digital document from Nextcloud via the content service Remove the document from the Fileserver application The record is removed from sysSigniSignedDocuments and then abAssessmentSignatures according to the logic demonstrated in Tenant Management Updated system close colour + filter fix (#144226) Problem System Close Date colour was orange when within 30 days of the close date The advanced filter is not working Solution Change the colour to red and show the expiry dates nearest to today's date first by default Corrected the filter Identity and Authorisation Implement Auditing on Identity service (#143433) Problem There is currently no auditing on the Identity Service. Registration development lies mostly here, and therefore, it should be considered for adding auditing. Solution New implementation to subtract the base methods used for tracking entity changes and submit them to the Audit service. Create new Content for identity that also inherits this, add an option to add a new external provider to the list and audit