Anleitung zum Import von Unternehmensdaten in Visma

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.


Mitarbeiterdaten

Beispiel für Mitarbeiterdaten

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>

Hinweis: 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

XML-Pfad

Beschreibung

Datentyp

Obligatorisch

Verwendung

person@personIdHRM

Internal Visma Enterprise person ID.

Ganzzahl

Ja

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

ssn

Norwegian national identity number (fødselsnummer).

Zeichenkette

Ja

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

givenName / familyName

First name and last name.

Zeichenkette

Ja

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

authentication/username

Full name as registered for logon.

Zeichenkette

Nein

Reference field; not normally used directly.

authentication/alias

Username alias.

Zeichenkette

Nein

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

dateOfBirth

Date of birth.

Datum

Nein

Can be used in age-based rule sets.

genderCode

Gender (MALE / FEMALE).

Zeichenkette

Nein

Rarely used in access rules.

careerInfo/jobTitle

Free-text job title.

Zeichenkette

Nein

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

contactInfo/email, privateEmail

Work and private email address.

Zeichenkette

Nein

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

contactInfo/workPhone, privateMobilePhone

Work and private phone numbers.

Zeichenkette

Nein

Used in directory synchronisation and notification flows.

postalAddress

Home address.

Zeichenkette

Nein

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

Employment and Position Fields

XML-Pfad

Beschreibung

Datentyp

Obligatorisch

Verwendung

employment/employeeId

Employee number for this specific employment relationship.

Ganzzahl

Ja

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

employment/category

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

Zeichenkette

Nein

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

employment/company

Employer entity (name and organisation number).

Zeichenkette

Nein

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

employment/employmentPercentage

Overall employment percentage across all positions.

Decimal

Nein

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

position@isPrimaryPosition

Marks the primary position.

Boolean

Ja

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

Ja

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

Nein

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

position/positionInfo/positionCode

Internal position code and title.

Zeichenkette

Nein

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]).

Zeichenkette

Nein

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

position/positionInfo/publicPositionCode

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

Zeichenkette

Nein

Used for tariff-based rules and statutory reporting.

position/positionPercentage

Percentage this specific position occupies.

Decimal

Nein

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

position/positionStartDate, positionEndDate, @validFromDate

Position validity dates.

Datum

Nein

Used to activate and deactivate access tied to the position.

position/costCentres/dimensionX

Cost centre / budget dimension.

Zeichenkette

Nein

Used for organisational reporting; rarely used for access control.

position/leave

Leave period, type, and percentage.

String / Date

Nein

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

Compensation, Tax and Statistics Fields

XML-Pfad

Beschreibung

Datentyp

Obligatorisch

Verwendung

position/salaryInfo/basicSalary, yearlySalary

Salary figures.

Decimal

Nein

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

position/positionStatistics/workClassification

Standard occupation classification (STYRK).

Zeichenkette

Nein

Used for statutory statistics reporting, not for access control.

statistics/paiEducation

Registered education level (PAI / SSB education code).

Zeichenkette

Nein

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

employment/taxDetails

Tax withholding details (tax card, percentage).

String / Decimal

Nein

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

dependents/dependent

Family members registered for pay or insurance purposes.

Zeichenkette

Nein

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>

Hinweis: 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

XML-Pfad

Beschreibung

Datentyp

Obligatorisch

Verwendung

chart@id, chart@name

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

Integer / String

Ja

Root of the imported hierarchy.

unit@id

Internal Visma Enterprise unit ID.

Zeichenkette

Ja

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.

Ganzzahl

Ja

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

unit@parentid

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

Ganzzahl

Ja

Builds the parent-child structure of the organisation.

unit@name

Department or unit name.

Zeichenkette

Ja

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").

Zeichenkette

Nein

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.

Ganzzahl

Nein

Used when importing data from multiple companies.

manager@id, manager@name

The unit's manager.

Zeichenkette

Nein

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.

Zeichenkette

Nein

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.

Zeichenkette

Nein

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

contactInfo/*

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

Zeichenkette

Nein

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."


Zuletzt aktualisiert: