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

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.