Guide d'importation des données dans Visma Enterprise

This document provides a detailed description of the fields in the XML master data file that eADM imports from Visma Enterprise HRM (VEP). It is intended for technical personnel responsible for setting up and maintaining the integration.

The file is delivered as a <personsXML> document containing one <person> element per employee. Each person record holds identity details, contact information, and one or more <employment> records describing the employee's positions, organisational placement, and compensation.

Warning: The source file can contain sensitive information, including salary details, tax data, bank account numbers, and dependent information. Review the Filtering and Transforming Import Data guide before importing an unfiltered file, and remove any elements that are not required by the integration.


Données relatives aux salariés

Exemple de données relatives aux salariés

Below is an anonymised example of a <person> element for a single employee. All identifying values (name, national identity number, contact details, organisation number) have been replaced with placeholder data.

XML
<person personIdHRM="10023">
    <authentication>
        <initials>KARNOR</initials>
        <userId>1042</userId>
        <username>KARI NORDMANN</username>
        <alias>KARNOR</alias>
    </authentication>
    <careerInfo>
        <jobTitle>Sykepleier</jobTitle>
        <workTasks>Sykepleier</workTasks>
    </careerInfo>
    <contactInfo>
        <email>kari.nordmann@utfjord.kommune.no</email>
        <workPhone>00000000</workPhone>
        <privateMobilePhone>00000000</privateMobilePhone>
        <paycheckByEmail>false</paycheckByEmail>
    </contactInfo>
    <dateOfBirth>1985-01-01</dateOfBirth>
    <dependents/>
    <employments>
        <employment>
            <bankDetails>
                <accountNumber>00000000000</accountNumber>
                <alias>Hovedkonto</alias>
                <nationalityCode>NO</nationalityCode>
            </bankDetails>
            <category id="F3"><description>Fast tilsett utvida</description></category>
            <company>
                <companyId>1</companyId>
                <companyName>Utfjord kommune</companyName>
                <organizationNumber>000000000</organizationNumber>
            </company>
            <companySeniority>2018-01-01</companySeniority>
            <employeeId>10023001</employeeId>
            <employmentPercentage>100.0</employmentPercentage>
            <lastChangedDate>2026-07-01T08:00:00</lastChangedDate>
            <pension name="KLP fellesordning" value="18"/>
            <positions>
                <position isPrimaryPosition="true" validFromDate="2026-01-01">
                    <chart id="5" name="Utfjord kommune">
                        <unit id="1001" name="Helse og omsorg">
                            <manager id="6001" name="Ola Leder"/>
                        </unit>
                    </chart>
                    <costCentres>
                        <dimension2 name="Helse og omsorg" value="2000"/>
                    </costCentres>
                    <employmentPositionPercentage>100.0</employmentPositionPercentage>
                    <positionCategoryNumber>1</positionCategoryNumber>
                    <positionInfo>
                        <positionCode name="Sykepleier" positionCode="7174" positionId="1" tableNr="50"/>
                        <positionType name="Fast" value="F"/>
                        <publicPositionCode name="Sykepleier" value="7174"><set>KS</set><setType>KSSKODE</setType></publicPositionCode>
                    </positionInfo>
                    <positionPercentage>100.0</positionPercentage>
                    <positionStartDate>2018-01-01</positionStartDate>
                    <positionStatistics includeInAA="true" includeInPAI="true">
                        <workClassification name="Sykepleier" value="2223114"/>
                        <workMunicipality name="UTFJORD KOMMUNE" value="0000"/>
                    </positionStatistics>
                    <salaryInfo>
                        <basicSalary>000000.00</basicSalary>
                        <salaryStep>0</salaryStep>
                        <salaryTable name="Kommuneansatte kap. 4" value="4025"/>
                        <yearlySalary>000000.00</yearlySalary>
                    </salaryInfo>
                    <weeklyHours>37.50</weeklyHours>
                </position>
            </positions>
            <taxDetails>
                <taxDeductionCard cardId="0000" cardName="Månedstabell" cardType="M"/>
                <taxPercentage>00.00</taxPercentage>
            </taxDetails>
        </employment>
    </employments>
    <familyName>Nordmann</familyName>
    <genderCode>FEMALE</genderCode>
    <givenName>Kari</givenName>
    <municipality name="UTFJORD KOMMUNE" value="0000"/>
    <nationalityCode>NO</nationalityCode>
    <postalAddress>
        <address1>Eksempelveien 1</address1>
        <countryCode>NO</countryCode>
        <postalArea>UTFJORD</postalArea>
        <postalCode>0000</postalCode>
    </postalAddress>
    <socialSecurityOffice name="NAV UTFJORD" value="0000"/>
    <ssn>00000000000</ssn>
</person>

Remarque : A person can have several <employment> records (e.g. one per employer within a multi-company setup), and each employment can hold several <position> records. Only one position per employment is marked isPrimaryPosition="true".

Identity, Authentication and Contact Fields

Chemin d'accès XML

Description

Type de données

Obligatoire

Utilisation

person@personIdHRM

Internal Visma Enterprise person ID.

Entier

Oui

Uniquely identifies the person record; used as the source key for matching during synchronisation.

ssn

Norwegian national identity number (fødselsnummer).

Chaîne de caractères

Oui

Primary identifier used to match the person across eADM, Active Directory, and Feide.

givenName / familyName

First name and last name.

Chaîne de caractères

Oui

Used to build display names and email addresses in target systems.

authentication/username

Full name as registered for logon.

Chaîne de caractères

Non

Reference field; not normally used directly.

authentication/alias

Username alias.

Chaîne de caractères

Non

Can be used as a candidate value for the target-system username (e.g. sAMAccountName).

dateOfBirth

Date of birth.

Date

Non

Can be used in age-based rule sets.

genderCode

Gender (MALE / FEMALE).

Chaîne de caractères

Non

Rarely used in access rules.

careerInfo/jobTitle

Free-text job title.

Chaîne de caractères

Non

Can be exported to target systems as a descriptive title; not used for access control.

contactInfo/email, privateEmail

Work and private email address.

Chaîne de caractères

Non

Used in notification flows, particularly before a work account exists.

contactInfo/workPhone, privateMobilePhone

Work and private phone numbers.

Chaîne de caractères

Non

Used in directory synchronisation and notification flows.

postalAddress

Home address.

Chaîne de caractères

Non

Rarely used; consider filtering out (see Warning above).

Employment and Position Fields

Chemin d'accès XML

Description

Type de données

Obligatoire

Utilisation

employment/employeeId

Employee number for this specific employment relationship.

Entier

Oui

A person can have several employments; this uniquely identifies each one.

employment/category

Employment category code and description (e.g. F3 / "Fast tilsett utvida").

Chaîne de caractères

Non

Distinguishes permanent, temporary, and hourly employment types; used in rule sets.

employment/company

Employer entity (name and organisation number).

Chaîne de caractères

Non

Used when importing data from multiple companies (see "Importing data from multiple companies").

employment/employmentPercentage

Overall employment percentage across all positions.

Decimal

Non

Used to distinguish full-time from part-time employment.

position@isPrimaryPosition

Marks the primary position.

Boolean

Oui

Determines which position governs the user's main account, department, and manager. See "Using the Position Filter".

position/chart/unit

Organisational unit the position belongs to.

String / ID

Oui

Used to place the user in the organisational hierarchy and to assign group memberships.

position/chart/unit/manager

Line manager of the unit.

String / ID

Non

Used for manager look-ups, approval flows, and onboarding/offboarding notifications.

position/positionInfo/positionCode

Internal position code and title.

Chaîne de caractères

Non

Used for role-based access control.

position/positionInfo/positionType

Position or employment status code (e.g. F "Fast" [permanent], PF "Foreldrepermisjon" [parental leave], PU "Perm u/lønn" [unpaid leave], V "Vikar" [temporary substitute]).

Chaîne de caractères

Non

Source field for eADM's QualificationCode attribute. See "Understanding the QualificationCode Attribute" below.

position/positionInfo/publicPositionCode

Statutory position code (KS tariff, "KSSKODE").

Chaîne de caractères

Non

Used for tariff-based rules and statutory reporting.

position/positionPercentage

Percentage this specific position occupies.

Decimal

Non

Used in position filters. See "Using the Position Filter".

position/positionStartDate, positionEndDate, @validFromDate

Position validity dates.

Date

Non

Used to activate and deactivate access tied to the position.

position/costCentres/dimensionX

Cost centre / budget dimension.

Chaîne de caractères

Non

Used for organisational reporting; rarely used for access control.

position/leave

Leave period, type, and percentage.

String / Date

Non

Can be used to suspend or adjust access during long-term leave.

Compensation, Tax and Statistics Fields

Chemin d'accès XML

Description

Type de données

Obligatoire

Utilisation

position/salaryInfo/basicSalary, yearlySalary

Salary figures.

Decimal

Non

Not used for access control. Highly sensitive; recommended to filter out before import (see Warning above).

position/positionStatistics/workClassification

Standard occupation classification (STYRK).

Chaîne de caractères

Non

Used for statutory statistics reporting, not for access control.

statistics/paiEducation

Registered education level (PAI / SSB education code).

Chaîne de caractères

Non

Statutory reporting field; a separate concept from eADM's QualificationCode attribute, see below.

employment/taxDetails

Tax withholding details (tax card, percentage).

String / Decimal

Non

Sensitive; not used by eADM. Recommended to filter out.

dependents/dependent

Family members registered for pay or insurance purposes.

Chaîne de caractères

Non

Sensitive; recommended to filter out unless specifically required.


Organisational Hierarchy

The organisational hierarchy is delivered separately from the employee data, as a <charts> file containing one <chart> element with a flat list of <unit> elements. Each unit references its parent, so the hierarchy is reconstructed by the importing system rather than being nested in the XML.

Example of Organisational Data

Below is an anonymised example showing a top-level unit and one of its child units.

XML
<charts>
    <chart id="5" name="Utfjord kommune">
        <units>
            <unit company="1" kode="40" id="1" name="Kommunedirektør" unitType="Kommunedirektør" parentid="0">
                <manager id="6001" name="Ola Leder">
                    <proprietorType>PERMANENT</proprietorType>
                </manager>
                <contactInfo>
                    <phone/>
                    <email/>
                </contactInfo>
                <tasks>
                    <task id="8" description="Tilvisar">
                        <employees>
                            <employee id="6001" name="Ola Leder">
                                <proprietorType>PERMANENT</proprietorType>
                            </employee>
                        </employees>
                    </task>
                </tasks>
                <roles>
                    <role id="4" description="Leiar">
                        <employees>
                            <employee id="6001" name="Ola Leder">
                                <proprietorType>PERMANENT</proprietorType>
                            </employee>
                        </employees>
                    </role>
                </roles>
            </unit>
            <unit company="1" kode="7" id="200" name="Helse og omsorg" unitType="Kommunalområde" parentid="40">
                <manager id="6002" name="Kari Nordmann">
                    <proprietorType>PERMANENT</proprietorType>
                </manager>
                <contactInfo>
                    <phone/>
                    <email/>
                </contactInfo>
                <tasks/>
                <roles/>
            </unit>
        </units>
    </chart>
</charts>

Remarque : The top-level unit (here, "Kommunedirektør") has parentid="0". Every other unit's parentid refers to the kode of its parent unit, not the parent's id. Confusing these two attributes is a common source of hierarchy errors; see "Visma's Recommended Organizational Structure and its Impact on eADM".

Organisational Field Descriptions

Chemin d'accès XML

Description

Type de données

Obligatoire

Utilisation

chart@id, chart@name

Identifier and name of the organisation chart (typically the municipality or company).

Integer / String

Oui

Root of the imported hierarchy.

unit@id

Internal Visma Enterprise unit ID.

Chaîne de caractères

Oui

Matches position/chart/unit@id in the employee file, used to place employees in the hierarchy.

unit@kode

Short numeric chart code for the unit.

Entier

Oui

Referenced by child units' parentid to build the hierarchy. See Note above.

unit@parentid

Le kode of the parent unit (0 for the top-level unit).

Entier

Oui

Builds the parent-child structure of the organisation.

unit@name

Department or unit name.

Chaîne de caractères

Oui

Displayed in target systems and used to build group names.

unit@unitType

Type of unit (e.g. "Kommunedirektør", "Kommunalområde", "Eining", "Team", "Ikkje tilsett").

Chaîne de caractères

Non

Can be used in rule sets to distinguish organisational levels. See "Visma's Recommended Organizational Structure and its Impact on eADM".

unit@company

Company ID the unit belongs to.

Entier

Non

Used when importing data from multiple companies.

manager@id, manager@name

The unit's manager.

Chaîne de caractères

Non

Used for manager look-ups, approval flows, and onboarding/offboarding notifications.

tasks/task

A named task (e.g. "Attesterar", "Godkjenne fråvær") with the employees, and optionally a supervisor, assigned to it.

Chaîne de caractères

Non

Used to grant task-specific access, such as approval or invoicing rights, independent of formal position.

roles/role

A named role (e.g. "Leiar", "BI tilgang") with the employees, and optionally a supervisor, assigned to it.

Chaîne de caractères

Non

Used to grant role-specific access rights independent of formal position.

contactInfo/*

Postal address, visiting address, phone, and email for the unit.

Chaîne de caractères

Non

Typically empty in practice; rarely used.


Understanding the QualificationCode Attribute

In HR systems like Visma Enterprise, a qualification code is a standardized tag used to record an employee’s formal education, licenses, and skills.

Instead of typing free text, HR uses these uniform codes so the system can automatically use the data for three main purposes:

  • Payroll & Tariffs: Links to job codes to ensure correct salary placement (e.g., registering a new degree automatically flags the employee for a pay raise).

  • Resource Management: Allows managers to easily track who is authorized to perform specific duties (e.g., checking who holds a valid healthcare license or heavy machinery certificate).

  • Reporting & Compliance: Provides clean data for internal competence mapping and statutory government reporting (like to Statistics Norway).

Typical Examples: "Bachelor's Degree," "HPR Authorization (Healthcare)," or "First Aid Certification."


Dernière mise à jour :