Version 9.1.211 (2 March 2026)
People Management
Add handling to not do PG update with rowlock when no data to update (#144529)
Problem
Problem
Situation where if
the current activity
is on materialised PeopleGroupUsers, but there is no data in the table for the
PGPG, 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
Problem
In some instances, the queries to fetch MyTeam / MyDepartment / MyCompany / PeopleGroupUsers times out or takes an excessive amount of time to complete.
Investigated and found couple of areas that could be done better, one of them relates to the appointments which is addressed in seperate PR. Another big win item identified relates to reporting lines. 2 calls are made as subqueries to determine
1)
theThe number of subordinates for the
user,user
2)
whetherWhether the user is my manager.
These
are
extremely
inefficient
however as for every row in the resultset the count is done from reporting lines / checked against my Line Manager.
Solution
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
onto reactReact for mapped key uniqueness.
Correct people group materialisation clearance when the list of people group's users areis fetched (#143861)
Problem
Problem
When V8 request the people group users from V9, and
there aresome PGs
that have been
materialisedmaterialised, and some
that have not been materialised, it causes the materialised people groups to be cleared. Only the unmaterialised PGs are to be returned.
Solution
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
Problem
Hover
Hovering on
Profilethe profile picture displays incorrect tooltip text
Solution
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
Event Scheduling
Add sanity check in event scheduling date range query | Fix people group tabs (#141796)
Job Management
Fixed copying of reporting lines on the user summary page (#143977)
Problem
Problem
The copy manager function for reporting lines on the user summary page is not working.
Solution
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
(#144492)
Problem
When opening the modal a global let is set which is not reset
Solution
Solution
Correct to pull the data-attribute directly
An error appears when deleting Required Evidence Files (#144493)
Problem
(#144493)
Problem
Incorrect id attribute
was retrieved to be passed for deletion
Solution
Solution
Correctly retrieve the id for the document deletion
Previous delete
reason gets cached when deleting evidence documents (#144494)
Problem
Problem
When a user opens the
modalmodal, it keeps
previousthe previously entered value
Solution
Solution
Reset the value to
the default when opened
Imports
Implemented visual enhancements to User Imports (#144481)
Problem
Problem
User Import triggers a few other imports, but no visual knowledge of that
Solution
Solution
Add
an indent
onto the types that
isare 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
Problem
Off
The off method is
calledcalled, which removes all the event handlers from that
elementelement, so only the very last defined event is added
Solution
Solution
Correctly remove the same event specified to be added
Communication Portal
Implemented Communication Priority Master data item (#140896)
Implemented Master Data Communication Category (#140897)
Implemented import for Master Data (#140898)
Added handling for external system message (#140899)
Fix colour picker not setting subsequent colours picked on change (#140896)
Resolved Icon picker not being able to search (#140897)
Resolved Master data bugs (#136015)
Fix master data api incorrect reference (#144484)
Resolved bugs (#136015)
Organisational Structure
Load org nodes on org structure page on demand (108648)
Content Management
Implemented new change to be able to delete a signing document (#143364)
Tenant Management
Updated system close colour + filter fix (#144226)
Identity and Authorisation
Implement Auditing on Identity service (#143433)