Se referencearkitekturens guide for stamdataindlæsere her for generelle fælles retningslinjer for udvikling af stamdataindlæsere.

Herunder beskrives specifikke forhold for Yder Indlæseren.

Kildekode

Database

I "referencearkitekturens guide til udviklere for stamdataindlæsere" nævnes, at Flyway anvendes til at holde styr på database ændringer. Dette gælder ikke for Yder. Her anvendes istedet Liquibase.

Data validering

På hver række af data foretages der følgende valideringer.

Hvis en data for en række fejler valideringen bliver denne række, og evt. indlejrede rækker, ikke indlæst, men resten af data i filen indlæses.

As-is validering

Disse er valideringer, der er kopieret fra den eksisterende Yder indlæser.

  • YderPersoner hvis CPR nummer er null, tom-streng eller kun spaces skippes
  • Felterne i Yder og YderPerson er defineret som alfanumeriske - så der foretages ikke nogen validering af typen/udfaldsrum af værdier
  • Felterne i Yder og YderPerson er defineret med deres længder, og det valideres om alle værdier overholder den givne længde for feltet
  • Felterne i Yder og YderPerson er alle defineret som "mandatory" felter, og det tjekkes derfor om alle felter indeholder en værdi.

Nye valideringer

Disse valideringer er tilkommet i forbindelse med implementering af Yder indlæser

  • CPR numre er valide - dvs. 10 cifre hvor første 6 cifre er en gyldig dato - hvis et CPR nummer ikke er validt skippes den pågældende YderPerson
  • Yder numre er valide - dvs. 6 cifre - hvis et Yder nummer ikke er validt skippes den pågældende Yder samt dens YderPersoner
  • Der hvor der i grænsefladebeskrivelsen (vedhæftet) er angivet en type for data - f.eks. at TilDatoYder er på formen ÅÅÅÅMMDD - valideres det om data følger det angivne format.
  • En YderPerson der ligger under en Yder skal pege på samme Ydernummer som den omkringliggende Yder har. - hvis en YderPerson ikke peger korrekt på dens yder skippes YderPersonen
  • Angivne koder ligger inden for de tilladte værdier

De implementerede valideringer tager udgangspunkt i snitfladebeskrivelsen for de yderdata der leveres og som her beskrevet i dette dokument:

Filsæt validering

På et modtaget filsæt gennemføres der et antal valideringer før data parses og splittes til events for levering til modtagere af data.

De valideringer, der er implementeret, er:

Validering af encoding

Indholdet af filen for yder indlæseren forventes at være encodet i UTF-8.

Der foretages en validering af encoding ved at udføre en dekodning af fil-indholdet med UTF-8.

Hvis valideringen fejler stoppes filen og den givne fejl logges til databasen og applikationsloggen med en relativ position i filen af det tegn som ikke er i den forventede encoding.

Validering af struktur

Indholdet af filen for yder indlæseren forventes at være i en given XML struktur.

Der foretages en validering af strukturen via en XML skema validering. Denne validering tjekker ikke for data indholdet, men sikrer udelukkende at strukturen af filen er som forventet.

Valideringen af strukturen fejler hvis

  • XML strukturen ikke er korrekt
  • Der er XML elementer som ikke passer med skemaet
  • Der er XML attributter som ikke passer med skemaet

Hvis valideringen fejler stoppes filen og den givne fejl logges til databasen og applikationsloggen.

Yderligere validering

Indholdet af filen valideres for yder-specifikke krav

  • Det tjekkes at værdien i AntPost-elementet matcher summen af elementer i filen
  • Det tjekkes at antallet af hhv. Ydere og YderPersoner ikke afviger mere end allowableDifference % fra det antal valide Ydere og YderPersoner der er i databasen.
    allowableDifference værdien konfigureres eksternt.

Hvis valideringen fejler stoppes filen og den givne fejl logges til databasen og applikationsloggen.

Validering af filnavn

Yderindlæseren modtager filer uden et løbenummer, så derfor er der ikke implementeret en validering af filnavnet iht. til sekvensen af filer.

Overvågning

Overvågningsservicen giver udslag på sin statusservice i følgende situationer, hvilket vil sætte supporter igang

Se driftvejledningen her afsnittet med service snitflader.

Registrering af fejl

Fejlscenarier er knyttet til indlæsningerne, og da yder indlæseren godt kan slukkes og startes, bliver evt. fejltilstande holdt i databasen i tabellerne YDS_DataSet og YDS_DataSetLog.

Tabellerne YDS_DataSet og YDS_DataSetLog er i bund og grund en database log over fejl der er opstået under processering af en fil. Disse tabeller udtrykker derfor hvordan processering af den seneste fil er foregået.

Da overvågningsservicen polles hvert 10 sekund er der et krav til at den er letvægts. I den nuværende overvågningsservice i yderindlæseren er det kun hvis databasen er nede at det kan tage et par sekunder, hvorfor yder indlæseren venter et par sekunder før den giver op.


  • No labels