Skip to main content

Version 9.1.204 (19 January 2026)

Performance Management

Implemented calculated average score (#142544)

Problem

    The KPI Calculated Average is not available on the View/Print | Export to Excel report

     

    Solution

      Implemented a new column in the data export on contract preview

       

      Resolved KPI not being able to delete (#143253)

      Problem

        The primary contract's bool value was not being sent through, which caused an invalid object 

         

        Solution

          Add a change to pass through the primary contract's bool value

           

          Resolved Scroll jumping to the top of the page after rating (#142537)

          Problem

            Visually impaired changes made a change to auto focus first item for every useeffect change, this caused that when a rating was done it scrolled to the top 

             

            Solution

              Add a change to stop concurrent refocus to the top

               

              Problem

                When clicking on View Documents on the KPI level, a page not found is displayed. When the content server is unavailable, clicking on the download or upload of a document causes errors 

                 

                Solution

                  Fix the view documents link for the KPI level. Add handling to show a content server unavailable message and disable buttons when the content server cannot be reached.

                   


                  Imports

                  Remove duplicate self-service settings in validation when importing users (#142626)

                  Problem

                    Cannot import users when ESS settings are duplicated in the DB 

                     

                    Solution

                      Removes duplicate rows in ESS settings, keeping only the most recently edited entry for each unique combination of `FieldSection`, `FieldId`, and `RulesetId`. * Updated the construction of the `requiredFields` dictionary in `UserDetailsValidationService.cs` to ensure unique combinations of `FieldSection` and `FieldId` are included, preventing issues caused by duplicate settings.

                       

                      Resolved import not being triggered (#143185)

                      Problem

                        Data-Action URL is not taken into account when the form modal is being submitted

                         

                        Solution

                          Corrected code and safety to use the action, and set the input fields correctly after selecting items.

                           

                          Add custom user import SQL scripts for clients (#132261)

                          Problem

                            There is no area to version the custom client import steps 

                             

                            Solution

                              Introduced new SQL procedures for Discovery, FamousBrands, and Hirexe user import processes. These scripts implement custom pre/post import logic, such as clearing email addresses based on field values and removing non-Hirexe appointments, to support client-specific requirements.

                               


                              Data Warehouse

                              Changed column name from ExecuteSequenceLastRefreshed to V9ExecuteSequenceLastRefreshed within PackageSettings (#143103)

                              Problem

                                Only naming the column field to ExecuteSequenceLastRefreshed will create confusion when using V8 DWH as well 

                                 

                                Solution

                                  Changed column name from ExecuteSequenceLastRefreshed to V9ExecuteSequenceLastRefreshed within PackageSettings

                                   

                                  Resolved duplicate issue within accTenants (#142737)

                                  Problem

                                    Duplicate data is being inserted within accTenants 

                                     

                                    Solution

                                      Added Distinct to resolve the duplicate insert issue

                                       

                                      Added Update LastRefresh Steps within ExecuteSequence (#143103)

                                      Problem

                                        LastRefresh data is required for SSIS Packages 

                                         

                                        Solution

                                          Added LastRefresh steps for all SSIS Modules and ExecuteSequence that will update within the table PackageSettings

                                           

                                          Created new table rbDataIntegrityResults (#142922)

                                          Problem

                                            A new table, rbDataIntegrityResults, is required within V9 DWH New fields are required within PackageSettings to update Last Refreshed for all modules 

                                             

                                            Solution

                                              Created a new table, rbDataIntegrityResults, within ReportBuilder_ETL.dtsx  Created a Script that will email the results to the required employees - Added fields PeopleManagementLastRefreshed, JobProfilerLastRefreshed, PerformanceManagementLastRefreshed, TenantManagementLastRefreshed, DataDictionaryLastRefreshed, LearningManagementLastRefreshed, LearningManagementReportLastRefreshed, ReportBuilderLastRefreshed and ExecuteSequenceLastRefreshed within PackageSettings

                                               

                                              Adjustment made within LearningManagementReport (#143104)

                                              Problem

                                                Adjustments are required within LearningManagementReport 

                                                 

                                                Solution

                                                  Moved manual update steps to its own container Updated manual step queries to update to the DWH table instead of the Staging table

                                                   

                                                  Removed unused tasks from CreateFunctions (#125159)

                                                  Problem

                                                    Some tasks are not being used anymore within SSIS Package CreateFunctions 

                                                     

                                                    Solution

                                                      Removed unused tasks from SSIS Package CreateFunctions

                                                       

                                                      Updated Insert steps within LearningManagement_ETL (#140865)

                                                      Problem

                                                        The package is currently failing with a full refresh due to joining with RulesetID within Insert Steps for LearningManagement 

                                                         

                                                        Solution

                                                          Updated Insert steps within LearningManagement_ETL by removing the RulesetID join

                                                           

                                                          Updated Insert steps within JobProfiler_ETL (#140865)

                                                          Problem

                                                            The package is currently failing with a full refresh due to joining with RulesetID within Insert Steps for JobProfiler 

                                                             

                                                            Solution

                                                              Updated Insert steps within JobProfiler_ETL by removing RulesetID join

                                                               

                                                              Updated Insert steps within PeopleManagement_ETL (#140865)

                                                              Problem

                                                                The package is currently failing with a full refresh due to joining with RulesetID within Insert Steps for PeopleManagement 

                                                                 

                                                                Solution

                                                                  Updated Insert steps within PeopleManagement_ETL by removing RulesetID join

                                                                   

                                                                  Resolved errors within UpdateDataDictionary.dtsx (#142103)

                                                                  Problem

                                                                    An error is received when selecting all the datasource fields for JobProfiles within ReportBuilder, since certain fields no longer exist anymore An error is received within "Add DataSourceJoins 2" due to not pointing to the correct Connection String 

                                                                     

                                                                    Solution

                                                                      Corrected the Data Dictionary to exclude fields for JobProfiles that do not exist anymore within the Data Warehouse  Corrected Connection String for "Add DataSourceJoins 2"

                                                                       


                                                                      People Management

                                                                      Add immediate imports after transfer to another ruleset (#142770)

                                                                      Problem

                                                                        When the user is transferred, the import is not requested immediately, delaying the sync of learner records 

                                                                         

                                                                        Solution

                                                                          Moved reporting line, cache busting and additional service import triggers from PeopleController to JobProfilerServiceV1 for better encapsulation. Added GetUsernameAsync to IUserQueries and UserQueries to support username retrieval by user ID. Updated ImportUsersEventConsumer to limit ImportTypes to UserData only. Also added placeholder fields for parent/guardian names in user export.

                                                                           

                                                                          Fix materialisation when a people group has not been materialised before | Fix regression bug on people termination (#136729)

                                                                          Problem

                                                                            When materialising people groups and the list of people groups to materialise is empty, it only materialises for people groups that have already been materialised in the past. 

                                                                             

                                                                            Solution

                                                                              When the 'forceSync' parameter is true, refresh for ALL people groups on the ruleset (if an empty people group was received). Still, only materialise people groups already materialised when 'forceSync' is false. **PLUS** Other issue picked up while testing: Termination broken due to a regression bug. A new field was added to a model used in a query in job profiler, but the query was not updated, which results in the query breaking, meaning ultimately people cannot be terminated anymore. Updated the model to make use of auto properties instead of a constructor, which makes it easier for Dapper to map the query result to the model.

                                                                               

                                                                              Update SkiaSharp dependencies and Docker setup (#139069 & #142672)

                                                                              Problem

                                                                                The component to convert images and Word documents is not available, and an error is received. The version of the native libSkiaSharp library (88.1) is incompatible with this version of SkiaSharp. Supported versions of the native libSkiaSharp library are in the range [116.0, 117.0).\u0022)) An error occurred while processing your request., , , The type initializer for SkiaSharp.SKImageInfo threw an exception.)","Exception":"System.TypeInitializationException: The type initialiser for SkiaSharp.SKImageInfo threw an exception. System.DllNotFoundException: Unable to load shared library libSkiaSharp or one of its dependencies. 

                                                                                 

                                                                                Solution

                                                                                  This pull request updates the SkiaSharp dependencies to the latest version and ensures the application runtime environment is properly configured for SkiaSharp support. It also includes some minor code cleanups and Dockerfile improvements.

                                                                                   

                                                                                  Hide summary sections that the people group do not provide access to (#139878)

                                                                                  Problem

                                                                                    When the people group does not allow access to a section 

                                                                                     

                                                                                    Solution

                                                                                      Added checks to only display payroll connector and payroll ID fields for the admins and manages, the user should not see the fields on their own profile. Updated ProfileSummaryViewModel to refine view permissions for particulars, contact details, and address based on user and group permissions.

                                                                                       


                                                                                      Report Builder

                                                                                      Resolved Delete button not being enabled when toggle is checked (#143032)

                                                                                      Problem

                                                                                        When a toggle is active for confirmation on the deletion modal, the delete button is not enabled 

                                                                                         

                                                                                        Solution

                                                                                          Add a change to toggle the disabled state depending on the checked state

                                                                                           


                                                                                          System Access

                                                                                          Implement rate limiting for gRPC transcoding HTTP requests (#142267)

                                                                                          Problem

                                                                                            APIs do not impose any restrictions on the size or number of resources that can be requested by the client/user

                                                                                             

                                                                                            Solution

                                                                                              Add change to rate limit endpoint calls

                                                                                               

                                                                                              Implement custom post import step (#137281)

                                                                                              Problem

                                                                                                Employees do not have individual email addresses and are unable to reset their passwords, as they can not receive the Welcome mail

                                                                                                 

                                                                                                Solution

                                                                                                  Implement a step to set the user password hash when empty

                                                                                                   

                                                                                                  Enhance the chatbot code to URL and JS detection (#142505)

                                                                                                  Problem

                                                                                                    When the bot code is anything other than a properly formatted JS function, the Sanitisation does not work. Any URL and methods are then allowed that are incorrect. 

                                                                                                     

                                                                                                    Solution

                                                                                                      Change the URL checking to identify any URL regardless of the formatting, and if it is not part of the whitelisted URL, reject and clear the text received. Attempt to format the text before parsing to JS to allow the functions to work better. Other improvements identified during the above work to prevent harmful scripts of being injected.

                                                                                                       


                                                                                                      Exports

                                                                                                      Resolved Export notification not being shown (#143192)

                                                                                                      Problem

                                                                                                        Change was made to trigger a download once export has been interacted with, due to messages being sent it was sent to each tab of the user that triggered a download, change was made to generate tab-ids for each request and only download on the tab that it interacted on, this caused that on report builder the id was not set hence why no message was shown 

                                                                                                         

                                                                                                        Solution

                                                                                                          Add a change to generate a tab ID to be sent with the export of a report

                                                                                                           


                                                                                                          Communication Portal

                                                                                                          Added media query to resolve position (#137794)

                                                                                                          Problem

                                                                                                            On certain screen resolutions, the add button is rendered behind the footer, and one of the selections can not be seen clearly

                                                                                                             

                                                                                                            Solution

                                                                                                              Add a media query change to accommodate this screen resolution

                                                                                                               


                                                                                                              Job Management

                                                                                                              Resolved job profile count (#140550)

                                                                                                              Problem

                                                                                                                Count varied from the first load and then, when opened, resulted from the partition, as there could be multiple positions within a job profile 

                                                                                                                 

                                                                                                                Solution

                                                                                                                  Add a change to correct the partition for joins and counts

                                                                                                                   

                                                                                                                  Resolved Job Profile Not being copied and global error snack (#142903)

                                                                                                                  Problem

                                                                                                                    When copying a job profile, an exception is thrown because it tries to copy the disclaimer as well. Because of the value object, it created a reference to the job profile ID that causes the error. A recent change was made to ajax.tsx to correct the console errors being logged when partial view results are being returned over ajax, but this caused the middleware general exceptions snack messages did not display any more 

                                                                                                                     

                                                                                                                    Solution

                                                                                                                      Add a change to create a new value object for disclaimer settings Revert and add another change to implement and correct to not write console errors when it is not JSON.

                                                                                                                       


                                                                                                                      Pathways

                                                                                                                      [Annotation][Syncfusion] Layout changes (#139069)

                                                                                                                      Problem

                                                                                                                        Not all the stamps are available. A stamp reverts to the previous stamp when used more than once. The stamp does not persist between pages. When reusing ink and stamps where used before the stamp is reactivated 

                                                                                                                         

                                                                                                                        Solution

                                                                                                                          Significant enhancements to the PDF annotation functionality in the pdfAnnotation.js file, focusing on improved custom stamp handling, user experience, and code clarity. It also updates the configuration to use production endpoints for the PDF viewer server and adjusts Content Security Policy settings for development.  PDF Annotation and Custom Stamp Functionality: Refactored custom stamp toolbar integration:
                                                                                                                            Custom stamps are now added to the toolbar with clear identifiers and properties, enabling easier mapping between toolbar buttons and stamp types. The toolbar now also includes new stamps such as "Half" and "Blue Half Tick", and supports rotating pages with new rotate buttons. Improved stamp selection and re-arming: Introduced logic to reliably restore the selected custom stamp after page changes and annotation additions, ensuring a smoother user experience when annotating multi-page PDFs. Added robust page rotation support: Implemented a rotateAndReload function that supports both document-level and viewer-level rotation, handling active annotation modes and ensuring the viewer state remains consistent. Enhanced annotation mode toggling:
                                                                                                                              Refined ink annotation toggling and ensured that switching modes resets the custom stamp selection, preventing mode conflicts. Configuration and Security: Updated PDF viewer server endpoint to production: Changed the PdfViewerServer URL in development settings to point to the production API for more realistic testing. Expanded Content Security Policy for development: Added the production server to the connect-src directive, allowing connections to the new PDF viewer endpoint during development. 

                                                                                                                               


                                                                                                                              Identity & Authorisation

                                                                                                                              Resolved registration textarea field not outlining correctly (#142116)

                                                                                                                              Problem

                                                                                                                                Within the input fields, there is styling that gets generated, which adds a border outline and correction when the label moves up, but on textareas, it does not 

                                                                                                                                 

                                                                                                                                Solution

                                                                                                                                  Add a change to also add these divs to textareas so that the same styling and behaviour gets used

                                                                                                                                   

                                                                                                                                  Resolved MFA enhancements (#143105 & #143100)

                                                                                                                                  Problem

                                                                                                                                    The countdown timer was adding a suffix with the added countdown value, which caused the old countdown and the current to be displayed next to each other. Missing translations 

                                                                                                                                     

                                                                                                                                    Solution

                                                                                                                                      Added a change to the countdown to remove and add as the timer counts down for resend, Added missing translations