Unique Identifier Overview
How to use unique identifiers
What are Unique Identifiers?
Unique identifiers are used in the Learning Suite to provide unique values to users and all objects. There are unique identifiers always generated by the Learning Suite and optional fields that can be migrated from external source systems. The identifiers are important as they can be used in various interfaces such as user provisioning, authentication, organisation structure imports, and many APIs.
User Related Unique Identifiers
Personal attributes are used to hold user related unique identifiers. There are a combination of Learning Suite generated and externally provided identifiers used for various purposes. Each will be described below:
Display Name | Database Name | Description |
---|---|---|
Person ID | PERSON_ID | Unique identifier for a user that is generated by the Learning Suite. This number is used by many REST API calls (GET, PUT, POST) to identify users. Most user lists, report extracts, and log files in the Learning Suite display this identifier. |
Number | USER_ID | This personal attribute must be populated with a unique value for all users and registration rules normally reference the PERSON_ID value if USER_ID is empty. Often this personal attribute display name would be updates if being populated by an external source system and used within an authentication interface. |
CSV ID | EXT_ID_CSV | This personal attribute is used for CSV file imports. The ID attribute would hold the unique identifier for users in the source system. When an import is performed a new user will be created in the Learning Suite if no user is found with the identifier and if a user is found with the matching identifier the record will be updated. |
LDAP ID | EXT_ID_LDAP | This personal attribute is used for LDAP imports. The ID attribute would hold the unique identifier for users in the source system. When an import is performed a new user will be created in the Learning Suite if no user is found with the identifier, and if a user is found with the matching identifier the record will be updated. |
External SCIM ID | EXT_ID_SCIM | This personal attribute is used for SCIM API account creation (POST). The ID attribute would hold the unique identifier for users in the source system. When an import is performed a new user will be created in the Learning Suite if no user is found with the matching identifier and if a user is found with the matching identifier the record will be updated. The SCIM API would normally populate this with the mapping value “id”. On creation the Learning Suite will return a PERSON_ID which would then be required for subsequent updates (PUT). |
ERP ID | EXTERNAL_ID | This identifier was initially created for a now obsolete Universal API provisioning method. This personal attribute can be used to capture unique user IDs from external systems and be the identifier in interfaces. |
Insurance broker-ID (VV-ID) | IDD_AGENT_ID | This identifier relates to the Insurance industry and allows a user to take their IDD-points with them from one employer to the next. |
Login name | LOGIN | This identifier is used to access the Learning Suite with local authentication (Username/Password). This value can be mapped in user data interfaces or generated by the Learning Suite. LOGIN can be used with many batch imports as the identifier and user data interfaces such as SAML and OIDC. |
Email is not necessarily a unique identifier as multiple users can technically have the same email address. However, this personal attribute is often used as the identifier in OIDC and SAML interfaces. |
Selection List Personal Attributes
Selection list personal attributes contain selection list tables that contain a Learning Suite generated ID and a Key for each value. The latter can be populated as required with manual entry or csv import of selection list table values. Each will be described below:
Name | Database Name | Description |
---|---|---|
Object ID | ID | LMS generated unique ID for a selection list value. The ID is generated using a counter based on order of creation. This ID is used in standard registration rules for setCommand rules. |
Key | external_id | Alphanumeric value can be entered that does not contain a comma (,) which is the file delimiter; where the key could have a comma a tab delimited txt file will be required for upload. The key can be mapped with registration rules to select values known by source systems when importing users. |
Cost Centres
Cost Centers are quite unique as the function has both a Personal attribute and a Meta tag. Values are created in a central Cost Centers function that automatically populates the Personal attribute and Meta tag selection list values. Each will be described below:
Name | Database Name | Description |
---|---|---|
Object ID | object_id | LMS generated unique ID for a selection list value. |
Key* | external_id | Alphanumeric key can be entered and would likely match a unique identifier contained in an external system. |
Object Related Unique Identifiers
All non-user related objects in the Learning Suite also have unique identifiers; for example, these objects include courses, learning paths, media, catalogues, groups, locations, job profiles, skills, certifications, badges, experience tracks, cost centres and resources.
Courses and Course Templates
The identifiers below have many uses including reporting or performing enrolments via API, advertising direct links to courses, and performing migrations of historical courses via CSV.
Name | Database Name | Description |
---|---|---|
Object ID | object_id | The Object ID is a Learning Suite generated fixed ID for an object that remains unchanged with versioning. This unique ID is generated for most objects to be used for identification in system log files and API related REST APIs. |
Course ID / Component ID | component_id | The Component ID is a Learning Suite generated version specific object identifier. This ID is commonly used by REST APIs for performing actions such as enrolments or direct linking to courses. ID of the described learning components (= version of a learning content / object) |
Course template | template_id | This is the Component ID of the course template from which a learning object originated. Refers to the component_id column in this table. This can be returned in REST API results or used in POST. |
Identification code | identification_code | Learning Suite generated ID where the pattern can be configured. The pattern can be defined in the Identification code menu of the Configuration function and activated in Course types function in the Process complexity tab. This identification code is primarily for learner purposes and not interfacing. |
Course type ID | course_type_id | Object ID of the course type (from the Object ID column or from the Description tab when the object is edited) |
External Template ID | external_migration_id | Used for importing course templates via csv. The course import would then use this identifier to determine the course template that an imported course will be derived from. This is stored in the e_componenttype database table in the external_migration_id column. |
External Course ID | external_migration_id | This identifier is used for importing courses via csv. The same Id is also used in training history assignments where user enrolments and completions are recorded against imported courses. This is also stored in the e_component database table external_migration_id column. |
External object ID | external_object_id | A unique ID that can be configured for course migrations. This identifier is used in training history migrations to assign learner completions. |
External system ID | external_system_id | Identifier of the external system from which the course was migrated |
Status | status | Status ID of the participant with regard to the component enrolment: |
Learning Paths
The identifiers below have many uses including reporting or performing enrolments via API and advertising direct links to Learning paths.
Name | Database Name | Description |
---|---|---|
Object ID | object_id | The Object ID is a Learning Suite generated fixed ID for an object that remains unchanged with versioning. This ID is used by many object related REST APIs. |
Component ID | component_id | The Component ID is a Learning Suite generated version specific object identifier. This ID is commonly used by REST APIs for performing actions such as enrolments or direct linking to courses. ID of the described learning components (= version of a learning content / object) |
External ID | external_object_id | Identifier of the group in an external data source and populated with BU groups imports. Registration rules often perform group assignments with hashIdent mapping based on this value. |
Identification code | identification_code | Learning Suite generated ID where the pattern can be configured. The pattern can be defined in the Configuration function Identification code menu and activated in Course types in the Process complexities tab. This identification code is primarily for learner purposes and not interfacing. |
Status | status | Status ID of the participant with regard to the component enrolment: |
Media
The identifiers below have many uses including reporting or performing completions via API and advertising direct links to Media.
Name | Database Name | Description |
---|---|---|
Object ID | object_id | The Object ID is a Learning Suite generated fixed ID for an object that remains unchanged with versioning. This ID is used by many object related REST APIs. |
Component ID | component_id | The Component ID is a Learning Suite generated version specific object identifier. This ID is commonly used by REST APIs for performing actions such as enrolments or direct linking to media. ID of the described learning components (= version of a learning content / object) |
Catalogues
This identifiers are mostly useful for headless LMS scenarios where REST API is used to replicate the catalogue structure between systems.
Name | Database Name | Description |
---|---|---|
ID | category_id | ID of the catalogue folder |
External ID | external_object_id | Identifier of the group in an external data source and populated with BU groups imports. Registration rules often perform group assignments with hashIdent mapping based on this value. |
External system ID | external_system_id | Identifier of the external system from which the catalogue is also held |
N/A | parent_id | Parent catalogue; links to the category_id of this table; 0 is entered here for main catalogues. |
N/A | parent_ids | Structure code with folder IDs which contains the path to the main catalog (parent ID:...parent ID:folder ID) |
N/A | root_id | allocated main catalogue; links to the category_id of this table; the same value as in category_id is entered here for main catalogues |
N/A | composing_type | Describes which type of content can be allocated to a catalogue (1 = Programmes, 2 = Course templates, 3 = Courses, 4 = Media, 5 = Tests, 6 = Feedback forms) |
Groups
All groups receive a Learning Suite generated unique ID. System and Business Unit (BU) groups can additionally have an External ID when created by interface or import.
Name | Database Name | Description |
---|---|---|
ID | group_id | Unique ID for a group generated by the Learning Suite. This ID is used in registration rules to assign users to groups and to grant clearance on users to groups. The ID is also used for various REST API calls including filtering. |
External ID | external_object_id | Identifier of the group in an external data source and populated with BU groups imports. Registration rules often perform group assignments with hashIdent mapping based on this value. |
External System ID | external_system_id | Identifier of the external system from which the group was migrated |
Locations
Locations are objects that can be assigned to Courses, Learning paths, Events and Resources. The ID is used by REST API in creation of objects that require a location to be added.
Name | Database Name | Description |
---|---|---|
ID | location_id | The Learning Suite generated ID of the location |
External ID | external_object_id | Identifier of the location in an external system. Purely used for custom migrations. |
External System ID | external_system_id | Identifier of the external system from which the location is also held. Purely used for custom migrations. |
Skills (Competencies)
All Skills receive a Learning Suite generated unique ID. When creating a Skill it’s also possible to populate and External ID which is known by other systems. The skill ID is important for imports and API requests or updates.
Name | Database Name | Description |
---|---|---|
ID | skill_id | The ID is generated by the Learning Suite. There is a fixed, unchangeable ID for each skill. This ID can be used by REST API calls to request data or perform updates. |
External ID | external_object_id | The External ID can be populated when creating Skills in the GUI or during creation via REST API. The External ID can be used with Skill achievement assignments via CSV and in REST API GET calls; the latter useful for updating external systems with skill data. |
External System ID | external_system_id | Identifier of the external system from which the Skill is also held. |
Skill structure | comp_structure_id | ID of the skill scale. Links to the column of the T_COMPETENCY-STRUCTURE table with the same name. |
Job Profiles (Roles)
All Job profiles receive a Learning Suite generated unique ID. When creating a Job profile it’s also possible to populate and External ID which is known by other systems. The Job profile ID is important for assignments and API requests or updates. With Job profile creation via API the Template ID is required
Name | Database Name | Description |
---|---|---|
ID | role_id | The ID is generated by the Learning Suite and is a fixed ID for the Job profile. This ID can be used by REST API calls to request data or perform job profile assignments. |
Template ID | template_id | The Template ID is the ID of the Job profile template that the Job profile was created from. This would be required if creating a Job profile by REST API. |
External ID | external_object_id | The External ID can be populated creating Job profiles in the GUI or during creation via REST API. The value will also be included in REST API GET calls which is useful for updating external systems with job profile data. |
External System ID | external_system_id | Identifier of the external system from which the Skill is also held. |
Skill | skill_id | The Skill ID is part of the Job profile table as Skills can be assigned to Job profiles. This is commonly required if creating of updating Job profiles using REST API. |
Certifications
Certifications are used to track progress towards achieving required training points or hours within a set time-frame. This ID can be used with REST API to GET existing certification data.
Name | Database Name | Description |
---|---|---|
ID | certification_id | Unique ID of the Certification as generated by the Learning Suite |
The Object ID or ID field will be available to all objects in the Learning Suite including Clients, Reports, On-the-job tasks, Resources, Certificates, Dashboards, Panels, and Navigation points; the exception being System texts which have unique bundle names.