Skip to main content

Version 9.1.199 (15 December 2025)

Ruleset Management

Set base urlURL when a schema is created during ruleset creation (#137697)

Problem

Problem:

  • When a new ruleset is createdcreated, or a schema setup request is mademade, the module setting SETTING_EXTERNALSERVICES_SAAS_APPLICATION_URL is not updated. This caused the assisgnmentassignment document annotation not to work.stop working.

 

Solution

Solution:

  • When the ruleset is created/ schema setup requestedrequested, sentsend the MVCUrl in the appsettings to V8.
  • Use the value to update the application URL
  • Confirm that the learning and content management API URLs are also synced to V8 and populated in the approriateappropriate settings.
  • Add scheduling to the imports on V9 (#136927)

    Problem:

    Problem
    • Unable to control how many times the payroll connector should run per day on a specific ruleset.
  • Unable to change the schedule of the V8 bulk sync
  • Unable to disable the V8 bulk sync

    Solution:
  •  

    Solution

    • On ruleset management| Integrations | General add simple scheduling 
      • Make the occurrence always in hour intervals, and set the starting time in increments of 5 min.minutes. Add an optional ending atto the field
      • Add a flag to disable the schedule,schedule. whenWhen disableddisabled, that type of import will not run on the ruleset
    • Allow multiple occurrences to be configured for each schedule itemitem, e.g
      • Occurs every hour between 6h00 and 10h00
      • Occurs every 6 hours between 11h00 and 24h00
    • Add two separate schedules under Integration | General  : 
      • Run Payroll connector
      • Run Bulk Additional SeviceService Imports
    • Add schedules next to each of the bulk pulls
    • Ensure the schedules are disabled when the Tenant subscription expiresexpires, or the ruleset is disabled


    Audit

    Move Support backups to central archive V9 (#136527)

    Problem

    Problem:

    • When doing supportsupporting an alteringalteration datato data, the support dev creates a backup of the data either for just the single rulesets or all rulesetrulesets within the live DB. This clutters the DB and increase the size unnecessarily.
     
    Solution:

    Solution
    • Add a new DB V9_Master_Archive.
  • In this DBDB, data will be stored as was done in the V8 archive DB. With the DB schema being the the name of the DB where the backup comes from and the table namename, the concatenation for the DB schema and Table namename, e.g [V9_Master_Core].[Account_Users_Description]
  • Make a copy of the sp_backup table in V8 and add the ruleset IdID to the SP
  • When the ruleset idID is defineddefined, then only backup the data for that ruleset, add the ruleset idID to the archive table name by defaultdefault, along with a description
  • Add this SP as a migration in each service


  • People Management

    Streamline V9 to V8 sync (#126727)

    Problem statement
    • The V9 to V8 sync failing causes users not to be able to loginlog in to the learning portal
    Solution

    • Create a new user importimport, same as job structure import C_03427_99999_sysImportJobStructure) for only employee information

    As a People Management Admin viewing the Appointment History, I want to change the Reason for Ending (#139964)

    Problem

    • Managers previously had no way to edit or correct the termination reason (e.g., Resignation, Termination for Cause) or the last day of service for an employee's appointment after it was terminated, leading to permanent inaccuracies in employee records.

     

    Solution

    • Updated and added existing and new logic so that managers can now edit the termination details (reason and last service day) for terminated appointments directly when editing the appointment's details.

    As a People Management Administrator, I want to have two new Reporting Lines for the Parent/Guardian (#134213)

    Business Rules 

    • Two new Reporting Line Type needs to be created  

    • Primary Parent/Guardian 

    • Secondary Parent/Guardian 

    • When logging into the system, the person will only see the people reporting to them in this Reporting Line Type 

    • Reporting lines to be added to V8 and the sync 

    As a People Management Administrator, I want the same functionality as for the Line Manager reporting line type to apply to the Parent/Guardian reporting line type (#134214)

    Business Rules 

    • A standard People Group Role should be created for a parent/guardian on R1 

    • Parent/Guardian People Group Role 

    • This is then propagated to all other Rulesets  

    • When the Parent/Guardian Reporting Line has been selected/filled, the People Group for this reporting line type should be created 

    • The person who is the Parent/Guardian,Guardian should then be given the Reporting Line Type with the Role in User Permissions | People Admin | Permissions based on Reporting Lines 

    • Remove the ABC Filter and Filtering Search 

    • Roles to be added to V8 and the sync  

    • At the end, this should work like the Line Manager reporting line type. 

    [People Management][Edit Appointment] Reason for Termination dropdown not saving values (#141429)

    Problem

    Problem

    • The Reason for Termination dropdown does not save the value that is entered

    Solution

    • Resolved the issue to save 


    People group refresh, rework and refactor (#139340)

    ImportsProblem

    • Another people group change is triggered while people groups are busy refreshing, causing overlap.
    • The overlapping request, in some cases, does not lead to a refresh of the people group; it is not remembered.
    • Only on subsequent non-overlapping requests will the changes show on the people group.
    • When a large people group is refreshed or its items amended, which triggers the refresh, the cache is busted in the beginning, and this leads to a situation where no employees are returned on reports / the front end while the people group materialises, and the cache is restored.
    • Additionally, because of the PG refresh for an amount of time, the materialised table is empty, and any references to it return no records.
       

    Solution

    • Implement a queue system to refresh people groups when data is changed.
    • Grab the latest request and mark the rest in the queue as completed.
    • Either refresh the ruleset or a specific people group.
    • Change the logical order of the operations to first do the PG calculation to get the list of users, and only once that is retrieved, bust and restore the PGU cache in sequence to reduce the amount of time that the cached people group is unavailable.
    • This will mean that when the Refresh Integration Event is triggered, currently the cache is busted beforehand, now change it to not do that, but only raise the refresh event and there only bust the relevant PG cache.
    • BustAllRulesetPeopleGroupKeysAsync
    • BustRulesetCacheAsync
    • BustDatabasePeopleGroupCacheAsync
    • RefreshPeopleGroupUsersEventConsumer
    • Modify the Refresh PG Materialisation process to do a delta of the newly added/removed users in the people group and not completely clear the PG table. 

     

    Reload personal details registration info per ruleset, Termination reason (#136630)

    Problem

    • Registration info not populated per ruleset, and termination reason not set when transferring the user 

     

    Solution

    • Reload personal details, registration info per ruleset, Termination reason

     


    Imports

    Integrations page is blank (#140927)

    Problem

    Problem:

    • AdditionalServiceImportHostedService broke due to a table it requires from a migration -migration, which havehas not yet executedbeen executed, but the time when it executes.
      Solution:

     

    Solution

    • Ensure AdditionalServiceImportHostedService only executes once the migrations have run

     


    Translations

    Translations - Investigate how translations can be implemented on the app (#127238)

    Problem

    Problem:

    • When using the app or other services in V9, import, identity the translations created on V9 cannot be addedaccessed
    • accessed

     

    Solution:Solution

    • Add a grpcgRPC server endpoint in WebMVC with 2 APIs that can be accessed externally

    • By key accepts the culture, and key requested. The interpolation values can also be applied to redenderrender the full key. When not suppliedsupplied, it is replaced by blanka blank, as in the system
    • By namespace accepts the culture and namespace and returnreturns all the translations from the jsonJSON filefile, with its system overridedoverridden when available
    • In both casescases, when the culture is suppliedsupplied, it attempts to provide the file in that lanaguagelanguage when available
    • When not suppliedsupplied, the usersuser's culture of the user for which the token was generated is used,used; should they not have oneone, the default culture is return
      returned
    • UserId is also availableavailable, should translations need to be drawn per user for a standard auth key
    • Add custom authorisation on the header auth token to ensure a secure connection in the contexcontext of MVC
    • Add aan anonymous GRPC endpoint that can be accessed by other services to draw specific translations


    Org Structure

    As a People Management Administrator, I want to transfer a user, including their training records, from schema 1 to schema 2 (#136630)

    Business Rules

    • Transfer a user from one Ruleset to another Ruleset
    • Permissions to be set on People Management Administration


    Data Warehouse

    Duplicate issue within lmTermResults (#112511)

    Problem

    • Duplicates occurred within TermResults due to inserted records within StudentSubjects that do not have the new Grade and Year values

     

    Solution

    • Resolved duplicate issue within lmTermResults by including the Grade and Year Name for the inserted records 

     

    Added new tables for JobInherent data (#138087)

    Problem

    • New Datasources are required for the JobInherent data

     

    Solution

    • Created DataSource jpJobInherentRequirements
    • Created DataSource jpJobCompetencyInherentRequirements
    • Created DataSource jpJobCompetencyInherentRequirementsEvidences

     

    Added new Event Scheduling Tables within LearningManagement_ETL.dtsx (#136864)

    Problem

    • Event Scheduling data is required within the Data Warehouse

     

    Solution

    • Added Datasource EventSchedules within LearningManagement
    • Added Datasource EventScheduleAttendees within LearningManagement
    • Added Datasource EventScheduleSessions within LearningManagement
    • Added Datasource EventSchedulingCosts within LearningManagement
    • Added Datasource EventScheduleAttendeeCosts within LearningManagement
    • Added Joins for new DataSources within UpdateDataDictionary
    • Added Indexes for new DataSources

     


    Job Management

    Post imported the wrong enum type in step (#139779)

    Problem

    • When executing the post-import step, it has a reference ID to a pre-import type 

     

    Solution

    • Correct change to the correct post import step

     

    Resolved no data being shown message (#141428)

    Problem

    • When there is no data in the table, the table is empty without a message 

     

    Solution

    • Add a change to show the message indication on only one view

     

    Hard delete users when job profile appointment fails (#139779)

    Problem

    • When users are imported, and it fails to create an appointment, it causes complications as that user is only created half. But since there are a lot of reasons an appointment can fail, do not rely on the error type for appointment creation 

     

    Solution

    • Retrieve all the users who were used to create an appointment to see if those users have an appointment. If not, send the user IDs to hard delete on the account and then also to other services with their people group user ID attached to re-materialise the data 

     


    Ruleset Management

    Implement User Registration Phase 1 (#134689)

    Business Rules

    • Added a field to specify what the org location will be when a new user registers
    • Added a field to specify what the job title will be when a new user completes the registration process
    • A new option is available to enable a registration reason on the registration page
    • Added a setting to specify what field on the registration page should be used as the username
    • Added a setting so that a user’s ID number to be verified on the registration page
    • Added placeholders to email templates that mask sensitive information
    • Add an option so that users registering for a specific job have to acknowledge a disclaimer after registration
    • Added a setting that will allow me to set how long a user will have access before they are automatically terminated
    • All the new fields to be translatable

     


    Learning Management

    Implemented custom stamp to move over to next page (#141344)

    Problem

    • When a custom stamp is selected, it is bound to that page, as per the Syncfusion control limitation, so once the mouse cursor moves over to the next page, the stamp stays on the page where it was initiated 

     

    Solution

    • Implement a new workaround that calculates the target(page) index value, deselects and reselects the stamp to be rendered on the active page

     

    Improving Mark Tracking and Highlighting: Distinguishing Inherited and Manual Changes (#141315)

    Problem

    • It was difficult to tell apart the marks that were inherited and those that were changed manually. This occurred when highlighting, as marks that were only inherited were mistakenly highlighted along with the modified ones. - The way the system tracked changes didn’t consider inherited marks, leading to inconsistencies.

     

    Solution

    • Added an `inherited` label to the marks. This helped clearly separate inherited marks from those that were changed manually. We also updated how we tracked changes so that it only affected the marks that weren’t inherited.
    • Improved the highlighting so that inherited marks wouldn’t get highlighted.

     

    Fix the year master data being incorrectly converted when being retrieved, and subject data not being saved (#141224)

    Problem

    • The Year master data is not being serialised correctly within learning management. The subject data is saving the incorrect values.

     

    Solution

    • Retrieve the year master data from the cache without converting the date converter first, and then convert it to a model that converts the date time. Fix the subject data not using the modal values to save.

     


    Performance Management

    Implemented location path in contract view (#141696)

    Problem

    • Add the Org Path to the header of the View/Print report.

     

    Solution

    • Add a change to view the location of the org path of the user within the contract preview

     

    Implement change to view contract from moderation and see comments (#141696)

    Problem

    • A new change was implemented to view a contract from moderation, but it fails to authorise as the moderator can not be a performance manager 

     

    Solution

    • Add a change to the additional value to the auth based on from modernisation view

     

    New Functionality: Allow Multiple PM Agreements per Year (#134446)

    Business Rules

    • A new button to add additional agreements
    • A new tab for my additional agreement is available
    • A manager viewing the team's dashboard can see the team's additional agreement
    • Add translation resources
    • All the additional agreement fields need to be available in the Data Warehouse
    • Include all User Additional Agreements on Moderation
    • Update the Import Validation and/or Calibration
    • Include 360 Scores on both the Primary and Additional Performance Agreements
    • Only Primary Performance Agreements should be used on Career and Succession
    • Include all User Additional Agreements on Evaluations
    • Include Additional Agreements on Bulk Actions
      • The Bulk Actions need to be modified to also cater for the additional agreements.

        • The following changes need to be made:

          • Create from template -> As with the import, enforce that only Primary contracts can be created from here.

          • Delete agreements -> Add icon to indicate Primary / Additional contracts. Allow deletion of both.

          • Move agreements -> All Additional contracts for the user must be moved along with the primary contract to the new Review Setup

          • Recalculate Scores -> Should not require any calculation changes, add icons to indicate Primary / Additional contracts. Ensure both can be recalculated