Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Når importeren bliver sat i gang med at køre, så kigger den på alle filer som ligger tilgængelige. Den har ikke nogle krav til navne, men Importeren vil processere dem filerne i rækkefølge sorteret efter navn.

Navngivningen af filerne, har betydning for funktionaliteten i importeren.

  • Filens navn starter med: transactional   -  hvis filnavnet starter med transactional, bliver indlæsningen delt op i mindre transaktioner. Antallet af opdateringer i hver transaktion bestemmes af propertien transaction.chunksize. Eksempel på filnavn: transactional_nspsor.zip
  • Filens navn starter med: cleandb - hvis filnavnet starter med cleandb, bliver alle rækker slettet i tabellerne: SOR2SorEntity, SOR2EanLocationCode, SOR2EanLocationCodeEdiType, SOR2EdiTypes, SOR2GeoLocalisation, SOR2SorClassifications, SOR2SorReplacedByEntities og SOR2SorShakMap. Sletningen foretages kun hvis propertien clean.db.enabled er sat til true. Eksempel på filnavn: cleandb_nspsor.cdb    -   filen må gerne være tom, indholdet anvendes ikke.
  • Filens navn starter med alt andet - når filnavnet ikke starter med transactional og cleandb, bliver hele filen læst ind i én transaktion.

For hver zip fil den processerer, der checker den at alle forventede CSV filer er indeholdt, før at den fortsætter. For hver at disse CSV filer, så checker den at alle forventede headers er tilgængelige i filen, før at den går igang med rent faktisk at parse en fil. Når en CSV fil er parsed, så skriver den alt data til databasen, før at den fortsætter til den næste CSV fil i zip filen.

...

Der er en række fejl som kan optræde, i forbindelse med eksekveringen af importeren. Her er en liste over de forskellige fejl muligheder, og hvordan de kan løses.

FejlTypeBeskrivelseLøsning
Zip fil kan ikke læsesHård

Zip filen med alle CSV filer der skal importeres, kan ikke læses. Enten er filen korrupt (fejl i overførelsen), eller også har importeren ikke tilladelse til at læse filen.

Hvis filen er korrupt, så skal den enten overføres på ny, eller også skal den genereres på ny. I begge tilfælde skal fejlen nok løses i backenden der leverer zip filen. Hvis det er manglende rettigheder, så skal der tildeles læse rettigheder til filen.
Ukendt fil i zip filenBlød

Der er en ekstra fil i zip filen, som importeren ikke forventer. Dette kan skyldes at backenden ved en fejl pakker ekstra filer med i zip filen, eller måske er det en fil som skal importeres, men som importeren ikke kender til endnu.

Importeren fortsætte som om at den ekstra fil ikke eksisterede. Det bør dog stadig undersøges, hvad det er for en ekstra fil som er blevet inkluderet. Hvis filen ikke bør være der til at starte med, så kan fejlen ignoreres, og backenden skal rettes så den ikke længere sender filen med. Hvis det er meningen at importeren skal kende til den nye fil, så er versionen af importer og backend ude af sync, og importeren bør opdateres hurtigst muligt.
Manglende fil i zip filHård

Der mangler en eller flere filer i zip filen. Dette kan skyldes en fejl i backenden, at en fil er blevet misset i genereringen og pakningen af filer, eller også er det en fil type som helt er udgået.

Hvis det er er en fil som burde være inkluderet, så skal fejlen rettes i backenden hurtigst muligt, således at alle filer bliver sendt med. Hvis det er en fil som er udgået, så er versionen af importer og backend ude af sync, og importeren bør opdateres hurtigst muligt.
CSV fil kan ikke læsesHård

En CSV fil kan ikke læses, hvilket der kan være mange årsager til. Det kan skyldes encoding af filen (der forventes UTF-8 BOM), filen er korrupt, og andre I/O relaterede fejl.

Det bør undersøges, hvorfor at filen ikke kunne læses. Hvis filen er korrupt, skal fejlen nok findes og rettes i backenden, før at en ny import kan foretages. Er filen i en anden encoding, kan dette rettes manuelt med forhåndenværende værktøjer, og importen kan genstartes.
CSV fil mangler headersHårdEn CSV fil indeholder ikke alle de headers som importeren forventer.

Hvis det er et felt som er udgået, så skal importeren opdateres hurtigst muligt for ikke længere at forvente feltet. Hvis ikke, så skal backenden opdateres hurtigst muligt, således at det manglende felt kommer med over i fremtidige kørsler.

CSV fil har for mange headersBlødEn CSV fil indeholder flere headers end importeren forventer.

Hvis det er felter som importeren er forventet at kende til, så skal importeren opdateres hurtigst muligt. Det kunne type på at versionerne af importer og backend er kommet ud af sync. Ellers kan det være felter som er udgået/unødvendige, og fejlen kan ignoreres.

Felt i CSV fil kunne ikke parses, og fejlhåndteringen er sat til at give exceptionHårdDen originale værdi for feltet kunne ikke parses, og fejlhåndteringen for feltet er sat til at give en exception. Feltet er obligatorisk for filen, og ikke må mangle.Fejlen vil typisk komme fra backenden, enten ved at den får skrevet data i et forkert format, skrevet generelt forkert, eller hvis dens kilde data er mangelfuld. Hvis feltet bare er i et forkert format (så som tidsstempler ikke er i ISO-8601 format), så kan dette muligvis rettes i hånden, og importen genstartes. Ellers skal fejlen rettes i backend hurtigst muligt, så en ny fil kan genereres til importeren.
Felt i CSV fil er ikke sat, og fejlhåndteringen er til at give exceptionHårdDen originale værdi for feltet er tomt/null, og fejlhåndteringen for feltet er sat til at give en exception. Feltet er obligatorisk for filen, og ikke må mangle.Fejlen vil typisk komme fra backenden, og tyder nok mest på mangelfuld kilde data. Fejlen kan nok ikke rettes i hånden, men i backenden hurtigst muligt.
Felt i CSV filen kunne ikke parses, og fejlhåndteringen er sat til at erstatte med standard værdiBlødDen originale værdi for feltet kunne ikke parses, og fejlhåndteringen for feltet var sat til at erstatte med en standard værdi fra config filen.Fejlen vil typisk komme fra backenden, og tyder nok mest på forkert formattering af feltets værdi (så som at et tidsstempel ikke er i ISO-8601 format). Hvis værdien kan rettes til noget validt, kan importeren køres igen. Ellers skal fejlen rettes i backenden. Den forkerte værdi er erstattet af en standard værdi fra config filen, og feltet er markeret som være upålideligt.
Felt i CSV filen kunne ikke parses, og fejlhåndteringen er sat til at lade det være tomt/nullBlødDen originale værdi for feltet kunne ikke parses, og fejlhåndteringen for feltet var sat til at erstatte med tomt/null.Fejlen vil typisk komme fra backenden, og tyder nok mest på forkert formattering af feltets værdi (så som at et tidsstempel ikke er i ISO-8601 format). Hvis værdien kan rettes til noget validt, kan importeren køres igen, ellers skal fejlen rettes i backenden. Den forkerte værdi er erstattet med tomt/null, og feltet er markeret som være upålideligt.
Felt i CSV filen er ikke sat, og fejlhåndteringen er sat til at erstatte med standard værdiBlødDen originale værdi for feltet vaar tomt/null, og fejlhåndteringen for feltet var sat til at erstatte med en standard værdi fra config filen.Fejlen vil typisk komme fra backenden, og tyder nok mest på mangelfuldt kilde data. Den forkerte værdi er erstattet af en standard værdi fra config filen, og feltet er markeret som være upålideligt.
Erstatning værdi for et felt i CSV filen indeholder invalidt dataHårdDen originale værdi for feltet kunne ikke parses, og fejlhåndteringen for feltet var sat til at erstatte det med en standard værdi fra config filen. Denne værdi kunne dog heller ikke parses.Ret standard værdien i config filen, således at den overholder det forventede format af data typen. Derefter prøv at importere igen.
SQL query kunne ikke udføresHårdDer skete en fejl under select/insert/update af rækker i Stamdata Kopi Register Service databasen.Undersøg forbindelsen til databasen, at den er tilgængelig og funktionel. Derefter prøv at importere igen.
Sletning af alle rækker i databasen kan ikke udføres.BlødDer er fundet en cleandb* fil - men rensning af databasen er ikke tilladt.Hvis det skal være muligt at rense tabellerne, skal propertien clean.db.enabled sættes til true.

Hårde fejl får importeren til at stoppe, og manuel udregning er nødvendigt. Bløde fejl kræver ingen udregning, men det bør undersøges om noget eventuelt skulle gøres. Begge fejl typer bliver noteret i loggen for videre undersøgelser.

...