Linkity‐työvuorosuunniteluintegraatio - espoon-voltti/evaka GitHub Wiki

Linkity-integraatiossa työntekijöiden työvuorot siirretään Linkitystä eVakaan, ja reaaliaikaisen läsnäolon leimaukset eVakasta Linkityyn. Aktiivisena osapuolena on kummassakin tapauksessa eVakassa kerran yössä pyörähtävät ajastetut ajot. Linkityn käyttämä integraatioalusta tarjoaa REST-API:n, jota ajastetut ajot kutsuvat.

Käyttöönotto

Toimintojen avauksista pitää kytkeä päälle seuraavat toiminnot:

  • Henkilökunnan reaaliaikainen läsnäolo
  • Työvuoro­suunnittelu­integraatio

evaka-service tarvitsee seuraavat ympäristömuuttujat:

  • espoo.integration.linkity.url kertoo Linkityn integraatioalustan juuripolun
  • espoo.integration.linkity.apikey kertoo Linkityn tunnistautumiseen käyttämän avaimen arvon

Ajastettujen ajojen asetuksia voi säätää samoin kuin muita eVaka-ajastuksia, eli ympäristömuuttujilla:

  • espoo.job.plan_staff_attendance_plan_jobs.enabled
  • espoo.job.plan_staff_attendance_plan_jobs.cron
  • espoo.job.plan_staff_attendance_plan_jobs.retry_count
  • espoo.job.send_staff_attendances_to_linkity.enabled
  • espoo.job.send_staff_attendances_to_linkity.cron
  • espoo.job.send_staff_attendances_to_linkity.retry_count

Linkity-rajapinta

Yleistä

Rajapinnan dokumentaatio

Integraatiossa henkilöiden tunnistamiseen käytetään Sarastia ID:tä. eVakassa se on tallennettu työntekijän employeeNumber-kenttään. Jos eVakan työntekijälle ei ole määritelty Sarastia ID:tä, hänelle ei haeta työvuoroja ja eikä hänen leimauksiaan lähetetä. Lisäksi työntekijän pitää olla luvitettuna yksikköön, jossa Työvuoro­suunnittelu­integraatio-niminen toimintojen avaus on kytkettynä.

Työvuorojen haku

Työvuorot haetaan kerran yössä ajanjaksolle kuluvasta päivästä alkaen kuusi viikkoa eteenpäin. API palauttaa vastauksen synkronisesti, joten yksittäisen kutsun palauttaman tietomäärän ja Linkityn kuorman pitämiseksi kohtuullisena, yhdellä kutsulla haetaan kerrallaan viikon mittaisen jakson vuorot. Teknisesti PlanStaffAttendancePlanJobs-ajon vastuulla on käynnistää nämä viikkokohtaiset kuusi hakuajoa. API palauttaa aina kaikki pyydetyn aikavälin vuorot, joten eVakassa jo olemassa olevat vuorot voidaan korvata kokonaisuudessaan uusilla vuoroilla.

Läsnäololeimausten lähetys

Läsnäololeimaukset lähetetään kerran yössä ajanjaksolle kuluvasta päivästä kuusi viikkoa taaksepäin. Kerralla lähetetään kaikki leimaukset, ei pelkästään uusia tai muuttuneita. API prosessoi leimaukset asynkronisesti, ja palauttaa 202-vastauksen kunhan leimaukset ovat syntaktisesti oikein. eVakaan asti ei tule tietoa, jos Linkityn pään myöhemmässä prosessoinnissa tulee vastaan virhetilanteita.

Valvonta ja virhetilanteiden hallinta

Linkity-integraation toimintaa voi seurata normaaleista evaka-servicen sovelluslokeista. Tuotannon virhetilanteista tulee viesti #evaka-alerts Slack-kanavalle.

Ajastettujen ajojen päätyessä virhetilanteeseen ne on konfiguroitu yrittämään ajoa uudestaan viiden minuutin välein niin kauan, kunnes ajo onnistuu, tai koittaa hetki 24 tunnin päässä, jolloin on ajon seuraava ajastus. Työvuorojen haun viikkokohtaisissa ajoissa tapahtuva virhetilanne koskee vain kyseisen viikon ajoa, ja onnistuneiden viikkokohtaisten ajojen työvuorot luetaan sisään eVakaan.

Linkityn tuen sähköposti: [email protected]