Designdokument DFØ-SAP-integrasjon

Detaljert teknisk oversikt over integrasjonen mellom Cerebrum og DFØ-SAP 

Innholdsfortegnelse

1 Innledning

Prosjektet BOTT-ØL innfører nytt system for økonomi og lønn ved BOTT-universitetene, og UiO er blant universitetene som skal ta i bruk den valgte løsningen fra DFØ.

Overgangen til nytt system innebærer at Cerebrum må hente data om organisassjonskart, ansatte og ansettelsesroller fra DFØ-SAP sine systemer fra og med produksjonssettingsdatoen, som er satt til 2020-01-01.

Kontaktpunkt: cerebrum-kontakt@usit.uio.no

2 Redegjørelse

Formålet med integrasjonen er å erstatte den eksisterende importen av ansattdata fra SAP til Cerebrum. Et viktig krav som stilles til den nye DFØ-SAP-integrasjonen er dermed at den må være en fullgod erstatning for den eksisterende integrasjonen. Det innebærer følgende.

  • Den nye integrasjonen må stort sett ha samme features og kunne importere de samme person-dataene som man får fra SAP-importen. Et unntak fra dette er personlige adresser, som det ikke lenger er nødvendig å importere siden de ikke eksporteres eller brukes av Cerebrum. 
  • Integrasjonen må kunne tas i bruk av alle institusjonene, og den må ha støtte for å oppdatere data som er institusjonsspesifikke.
  • DFØ-SAP-integrasjonen skal kunne kjøres parallelt med eksisterende import. I perioden disse systemene kjøres parallelt trenger vi at det er mulig å sammenligne import av personer, for å sikre at det fungerer likt som før.
  • DFØ-SAP vil ikke inneholde stedkoder for organisasjonsenheter, så vi trenger å kunne hente dette fra en annen kilde. Det har blitt besluttet å bruke orgreg til dette.
  • Integrasjonen skal følge INTARK. 

3 Detaljebeskrivelse

Høynivådesign

Bildet kan inneholde: tekst, diagram, teknisk tegning, linje, plan.

N.B. Navn til "exchanges" og køer (queues) beskrevet nede refererer til navnene på figuren og ikke nødvendigvis navnene definert i den relevante "virtual host" i RabbitMQ

  • flyten starter med at DFØ-SAP instansen produserer melding(er) som tilsvarer én hendelse (event). Meldingen sendes via exchange1.
  • RabbitMQ vil da videresende meldingen til to køer: dfo_sap_queue som brukes av DFØ-SAP konsumenten (consumer) og scheduling_queue som brukes av tiny scheduler.
    • dersom meldingen ikke inneholder feltet nbf (not before), vil den bli ignorert av tiny scheduler.
    • dersom meldingen innholder nbf, vil tiny scheduler sørge for (ved hjelp av Celery) at meldingen blir sendt på nytt via exchange2 etter tidspunktet fremover i tid beskrevet i nbf.
  • DFØ-SAP konsumenten vil motta alle meldinger som kommer fra DFØ, inkludert de som er satt fremover i tid etter tidspunktet beskrevet i nbf feltet. Konsumenten vil også kunne produsere egne meldinger som settes fremover i tid (med nbf felt) og sende dem til exchange1. Konsumenten vil da bruke hr_import modullen til Cerebrum (Cerebrum/modules/hr_import) til å kalle funksjonen som tilsvarer en hver type melding.
  • hr_import modullen vil settes opp til å bruke Cerebrum/modules/no/dfo modulen som inneholder DFØ-SAP klient, samt den spesifiske business logikken for håndtering av data som kommer fra de forskjellige DFØ-SAP APIer.
  • dfo modullen vil til slutt lagre relevant data fra DFØ-SAP til mellomformat som er definert i hr_import modullen.
Publisert 30. okt. 2020 14:05 - Sist endret 13. jan. 2023 12:56