Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Beskrivning

Hanterar data kopplad till personer som arbetar eller verkar inom organisationen Sundsvalls kommun eller kommunala bolag.

Detta baserat på anställning i Heroma eller att användarkonto skapats manuellt vilket är processen för externa resurser som inte är anställda. Det kan även förekomma för anställda att man får konto skapat manuellt, dels då det historiskt inte alltid skapades användarkonton för t.ex. timvikarier (vilket det gör sedan hösten 2021) men även då alla anställningsformer inte läses in i Metakatalogen och därmed inte får konto genererat.

Beroende på nyttjad end-point i Employee så skiljer sig omfattningen/datakällan åt och är enligt nedan:

  • Samtliga end-points i Employee, undantaget 'employee/employments' är baserade på att man har konto och kontoinformation i Metakatalogen. Kontot kan ha skapats automatiskt baserat på en viss anställning (bl.a. s.k. förmånsgrupp) i Heroma* men även manuellt.

  • End-pointen 'employee/employments' är däremot enbart en spegling av anställningsinformationen från Heroma*. En person kan ha flera anställningar vid en viss given tidpunkt t.ex. vara tjänstledig för studier men samtidigt arbeta extra i en annan verksamhet. Det är också vanligt att timvikarier har anställningar i flera verksamheter samtidigt.

*Heroma kommer vara det gemensamma HR systemet för kommunkoncernen, vissa av bolagen nyttjar ännu egna HR system, dessa föder också Metakatalogen på samma sätt. Planen är att alla bolag ska ha gått över till Heroma som HR system under 2022.

Livscykelstatus

Under utveckling

Lösningsbeskrivning

Gliffy
imageAttachmentIdatt234258482
macroIde522667d-c8fd-467c-9b70-042e070d1a37
baseUrlhttps://sundsvall.atlassian.net/wiki
nameassignee
diagramAttachmentIdatt234160214
containerId234160129
timestamp1616360560613

Hantering av personuppgifter

Uppgifter så som namn, adress, telefonnummer och e-post hanteras av API:et då det är nödvändigt för att arbetsgivaren ska kunna jobba med bland annat löneärenden, HR-ärenden eller andra ärenden mellan arbetsgivare och arbetstagare. Data används även för access till olika system som används inom organisationen.

API specifikation

Hämta

domän och inloggningsnamn från personnummer

Exempelanrop:

GET

/api/1.0/employee/employed/{personalNumber}/loginName

Returnerar en lista med domän och inloggningsnamn för person med angivet personnummer.
Svar:
Code Block
languagejson
[
  {
    "domain": "string",
    "loginName": "string"
  }
]

Hämta information om person från användarnamn

Exempelanrop:

GET

/api/1.0/employee/portalpersondata/{domain}/{loginName}

Returnerar information om person utifrån domän (domain t.ex. ‘PERSONAL’) och användarnamn ( loginName t.ex. 'kat11tla').
Svar:
Code Block
languagejson
{
  "personid": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "givenname": "string",
  "lastname": "string",
  "fullname": "string",
  "address": "string",
  "postalCode": "string",
  "city": "string",
  "workPhone": "string",
  "mobilePhone": "string",
  "extraMobilePhone": "string",
  "aboutMe": "string",
  "email": "string",
  "mailNickname": "string",
  "company": "string",
  "companyId": 0,
  "orgTree": "string",
  "referenceNumber": "string"
}

Hämta information om person från e-post

Exempelanrop:

GET

/api/1.0/employee/portalpersondata/{email}

Returnerar information om person utifrån e-post (email t.ex robin.robinsson@sundsvall.se).

Svar:

Code Block
languagejson
{
  "personid": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "givenname": "string",
  "lastname": "string",
  "fullname": "string",
  "address": "string",
  "postalCode": "string",
  "city": "string",
  "workPhone": "string",
  "mobilePhone": "string",
  "extraMobilePhone": "string",
  "aboutMe": "string",
  "email": "string",
  "mailNickname": "string",
  "company": "string",
  "companyId": 0,
  "orgTree": "string",
  "referenceNumber": "string"
}

Hämta information om nyanställningar

Exempelanrop:

GET

/api/1.0/employee/employments

Om anropet görs helt utan parameterar så hämtar nya/förändrade anställning från alla bolag de senaste 7 dagarna.
Parametrar skickas som en queryparameter formaterad som en JSON-sträng.

/api/1.0/employee/employments?filter={"CompanyId":1,"ShowOnlyNewEmployees":true}

Parametrar:

Parameter

Förklaring

CompanyId

Numeriskt värde (int16). 1=SK, Se FOCompany för värdelista.

Kan anges som array

Om denna parameter utelämnas visas alla bolag

HireDateFrom

Startintervall för anställningsdatum. Anges som helt datum utan tid. Ex:”2021-06-01”.

Om denna utelämnas visas de senaste sju (7) dagarana.

HireDateTo

Slutintervall för anställningsdatum. Anges som helt datum utan tid. Ex: “2021-06-14”

IsManual

Filtrerar på “vanliga” eller “manuella” anställningar. Värdet kan vara 0/false eller 1/true

Om denna är 0/false så visas bara “vanliga” anställningar.

Om den är 1/true visas bara “manuella” anställningar.

Om den utelämnas visas alla anställningar

ShowOnlyNewEmployees

Filtrerar ut nyanställningar. D.v.s. personer som fått sin första anställning på bolaget. Kallas ibland för “Joiners” eller “New hires”.

Om värdet är 1/true så visas bara joiners

Om värdet är 0/false ELLER om parametern utlämnas så vissas både joinsers och personer med förändringar i tjänstern.

PersonId

Guid som är nyckel för en person. Om denna parameter skickas in kommer enbart en (1) person att returneras.

Exempel på parametrar:

Filter (?filter=…)

Resultat

'{"CompanyId":1,"ShowOnlyNewEmployees":true}'

Visar nyanställda i bolag 1 (SK) de senaste sju dagarana

'{"CompanyId":1,"ShowOnlyNewEmployees":true,"HireDateFrom":"2021-06-01"}'

Visar nyanställda i bolag 1 från den 1/6 till dags dato

'{"CompanyId":[8,9],"ShowOnlyNewEmployees":true,"HireDateFrom":"2021-06-01"}'

Visar nyanställda i bolag 8 & 9 [8,9] från den 1/6 till dags dato

'{"CompanyId":[1,14,17],"IsManual":true,"HireDateFrom":"2021-06-05","HireDateFrom":"2021-06-10"}'

Visar nya och förändrade manuella anställningar i bolag 1,14 & 17 för peridoen 5/6-10/6

‘{“PersonId”:”C53801E1-D185-4967-92F4-EBE735DE85B7”}’

Hämtar alla anställningar för angiven person

Expand
titleAPI-nyckel för sandbox-miljö. Klicka på "Authorize" nedan och ange denna nyckel för att testa API:et.

Kommer snart

Swagger ui
openapi: 3.0.1
info:
  title: Employee
  version: '1.0'
servers:
  - url: https://api-test.sundsvall.se/employee/1.0
paths:
  /employments:
    get:
      parameters:
        - name: filter
          in: query
          required: false
          style: form
          explode: true
          schema:
            type: string
      responses:
        '200':
          description: ok
  '/employed/{personalNumber}/loginname':
    get:
      tags:
        - Employee
      parameters:
        - name: personalNumber
          in: path
          required: true
          style: simple
          explode: false
          schema:
            type: string
            nullable: true
      responses:
        '200':
          description: Success
          content:
            text/plain:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/LoginName'
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/LoginName'
            text/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/LoginName'
  '/portalpersondata/{email}':
    get:
      tags:
        - Employee
      parameters:
        - name: email
          in: path
          required: true
          style: simple
          explode: false
          schema:
            type: string
            format: string
      responses:
        '200':
          description: Success
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/PortalPersonData'
            application/json:
              schema:
                $ref: '#/components/schemas/PortalPersonData'
            text/json:
              schema:
                $ref: '#/components/schemas/PortalPersonData'
  '/portalpersondata/{domain}/{loginName}':
    get:
      tags:
        - Employee
      parameters:
        - name: domain
          in: path
          required: true
          style: simple
          explode: false
          schema:
            type: string
            nullable: true
        - name: loginName
          in: path
          required: true
          style: simple
          explode: false
          schema:
            type: string
            nullable: true
      responses:
        '200':
          description: Success
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/PortalPersonData'
            application/json:
              schema:
                $ref: '#/components/schemas/PortalPersonData'
            text/json:
              schema:
                $ref: '#/components/schemas/PortalPersonData'
security:
  - ApiKeyAuth: []
components:
  securitySchemes:
    ApiKeyAuth: 
      type: apiKey
      in: header   
      name: apikey
  schemas:
    PortalPersonData:
      type: object
      properties:
        personid:
          type: string
          format: uuid
        givenname:
          type: string
          nullable: true
        lastname:
          type: string
          nullable: true
        fullname:
          type: string
          nullable: true
        address:
          type: string
          nullable: true
        postalCode:
          type: string
          nullable: true
        city:
          type: string
          nullable: true
        workPhone:
          type: string
          nullable: true
        mobilePhone:
          type: string
          nullable: true
        extraMobilePhone:
          type: string
          nullable: true
        AboutMe:
          type: string
          nullable: true
        email:
          type: string
          nullable: true
        mailNickname:
          type: string
          nullable: true
        company:
          type: string
          nullable: true
        companyId:
          type: integer
          format: int32
        orgTree:
          type: string
          nullable: true
        referenceNumber:
          type: string
          nullable: true
      additionalProperties: false
    LoginName:
      type: object
      properties:
        domain:
          type: string
          nullable: true
        loginName:
          type: string
          nullable: true
      additionalProperties: false

Säkerhetsklassning

Säkerhetsklass 2

Autentiseringsmetod: Oauth2

(Ref: Säkerhetsklassning av APIer )

API-ägare

<Kontaktuppgifter till den verksamhet som äger APIets livscykel>

Teknisk ägare

https://sundsvall.atlassian.net/wiki/spaces/META

För tekniska frågor: joel.lindberg@sundsvall.se, marcus@xpservices.se

Länkar

<Länkar till dev-portal;

  • Test

  • Sandbox

  • Produktion>

FAQ

<FAQ>