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 | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
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 personnummerExempelanrop:
GET
/api/1.0/employee/employed/{personalNumber}/loginName
Svar:
Code Block | ||
---|---|---|
| ||
[
{
"domain": "string",
"loginName": "string"
}
] |
Hämta information om person från användarnamn
Exempelanrop:
GET
/api/1.0/employee/portalpersondata/{domain}/{loginName}
domain
t.ex. ‘PERSONAL’) och användarnamn ( loginName
t.ex. 'kat11tla').Svar:
Code Block | ||
---|---|---|
| ||
{
"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 | ||
---|---|---|
| ||
{
"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 | ||
---|---|---|
| ||
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>