Martin Edlund 2015-06-09 SB01_kravspec 1 72 Kravspecifikation SB01 Överföring av katalog- och meritdata från Ladok till NyA 2015-05-21 Beteckning: SB01_kravspec Ändringshistorik Datum Av Kommentar Godkännare 2005-01-19 Martin Edlund Första utkast - 2005-02-07 Martin Edlund Kompletteringar - 2005-02-14 Martin Edlund Hantering av tomt from-datum. Justering av tolkning av värdet null i poängkolumnen för berörda tabeller. Lagt till kontroll: -byt ut [] mot i benämningsfälten. De förstör inläsning av -
Martin Edlund 2015-06-09 SB01_kravspec 2 72 filen hos NyA. 2005-08-10 Martin Edlund Lagt till hantering av meritdata - 2005-08-25 Martin Edlund 3.1.3 och 3.2.14 Lagt till text för kontroll om högskolepoäng. 2005-09-01 Martin Edlund 3.2.14 Lagt till förklaring till sql samt en kontroll 2005-10-19 Martin Edlund 3.1.1 Ändrat efter nya krav från samrådsmöte 5/2005 2005-12-22 Martin Edlund Ändrat till följd av prestandahöjningsåtgärden. 2006-01-19 Martin Edlund 3.2.3 och 3.2.4, lagt till kontroll så att tillgodoräknade poäng som är null sätts till blankt i filen. 2006-02-23 Martin Edlund Lagt till effekten av borttagna poster i Ladok. - 2006-03-02 Martin Edlund Tagit bort kontroll på att det ska vara originalmeriter under punkt 3.2.1.2. 2006-03-02 Martin Edlund Korrigerat sql-satser efter prestandaförbättring-åtgärd 2006-06-08 Martin Edlund Ytterligare korrigering av sql-satser samt viss redigering 2006-06-12 Martin Edlund Rättat punkt 3.6.4-2007-05-03 Martin Edlund Total översyn efter diverse åtgärder - 2008-06-12 Martin Edlund Ändringar under punkterna 3.3.4.2 resp 3.3.19.1 enligt åtgärderna 16875 resp 17449 2008-10-21 Håkan Fransson Ändringar under punkterna 3.1.3, 3.1.7, 3.1.8, 3.1.11 enligt STU-8102 2009-02-12 Per Lindgren 3.1.3 UTBNIVA.KURS som är blank skickas som 1ett till NYA 2009-10-02 Per Lindgren Proj 9106 2009-12-15 PerLindgren Proj 9106 TILTNIVA.LINJE som är blank skickas som 1ett till NYA Nya kommer att skicka markering i sin beställningsfilmerits om akt.pers är skyddad. Vi använder denna markering för att se till att rätt data skickas till nya. Tillägg/ändringar gulmarkerade 2.1.1 skyddsmarkering 3.1.1 läs INTBOKST. Koll av sjunde pos i PNR 3.3.1 Skyddade personer 3.3.1.3 Ändrat DPNR till IPNRD 2009-12-23 PerLindgren Proj 9106 - Leverans - - - - - - - - -
Martin Edlund 2015-06-09 SB01_kravspec 3 72 2010-02-11 Johan Forssell Uppdatera sql-exempel 2010-09-29 PerLindgren STU T-0106: skicka huvudområdesgrupp till Nya. Nya kommer att fixa katalogtabell för huvudområdesgrupp själva. Vi bryr oss inte om det. 2010-11-08 Ulrik sandgren Lagt till kontroller mot LOKKURS/LOGPROG/LOKEXAM för meriter som inte skall visas 2011-01-10 PerLindgren Leverans STU T-0106 2011-04-14 Bengt Reinholdsson Lagt till kontroller i avsnitt 3.3.6, 3.3.7 och 3.3.8 åtgärd STUNYA-2 Gulmarkaerat 2011-08-03 PerLindgren Ändrat i 3.3.8.2 Tabell BORTRES istället för BORTTG och kolumnerna KURS, PROV istället för RADNR, LOPNR 2011-08-17 PerLindgren Vid borttag av INBYTEGH ska även kurskoden skickas 2012-08-24 Bengt Reinholdsson LADOK-16157: Tagit bort PROGKURS och PROGPLK 2013-05-03 BengtReinholdsson LADOK-3341- Lagt till under 3.3 att personena alltid ska skickas tillbaka oavsett om det finns meriter eller ej. 2013-05-30 PerLindgren https://jira.its.umu.se/browse/ladok-12636 Bättre koll på studenter med inaktiva och preliminära beslut i tabellen ALIAS. Vilket pnr som verkligen ska användas har fått en bättre kontroll 2013-09-30 Per Lindgren LADOK-3341- Utökad beskrivning över beställningsvarianterna C och A under Viktig skillnad på hur Nya/Ladok kommunicerar 2014-10-21 PerLindgren Utskick 2015_01 LADOK-18698 förläng institutionsbenämning till 120 tkn LADOK-12880 förläng programbenämning till 120 tkn LADOK-18825 huvudområden/huvudområdesgrupper Hanteringen av COURSEMAJOR ersätts med COURSEMAJOR2. Posten LOCALMAJOR tillkommer Posten COURSE förlängs med ett tkn som innehåller KURS.KONVERT 2015-05-05 PerLindgren https://jira.its.umu.se/browse/ladok- 19308 Skicka delete-post vid tidigt avbrott i
Martin Edlund 2015-06-09 SB01_kravspec 4 72 INREGFFG och INREGFO. Bara ändringar i kravet eftersom javakoden redan fanns. 2015-05-21 PerLindgren https://jira.its.umu.se/browse/ladok- 19650 Examenstypen X ska inte skickas. Gäller EXAMBEN o EXAMINR. 2015-06-25 Magnus Böhlin https://jira.its.umu.se/browse/ladok- 20061 Posttyp LATQ skapades aldrig för personer som var skyddade i Ladok. Uppdaterat de 2 berörda SQL erna getpnrformeritchange och getgodkpoangperpersonandkurs
Martin Edlund 2015-06-09 SB01_kravspec 5 72 Innehållsförteckning 1 Inledning... 7 1.1 Syfte... 7 1.1.1 Bakgrund... 8 1.2 Definitioner och förkortningar... 8 1.3 Referenser... 8 2 Förutsättningar... 8 2.1 Yttre förutsättningar... 8 2.1.1 Beställning från NyA... 8 2.1.2 Kommunikation mellan Ladok och NyA... 8 2.1.3 Viktig skillnad på hur Nya/Ladok kommunicerar... 9 2.1.4 Exempel på hur kommunikationen sker... 9 2.1.5 Överföring till NyA... 10 2.2 Inre förutsättningar... 10 3 Krav... 11 3.1 Läsning av katalogtabeller... 11 3.1.1 Namn och telekom... 11 3.1.2 Inst... 12 3.1.3 Kurs... 12 3.1.4 Kursuomr... 13 3.1.5 Dklass... 14 3.1.6 Kurshomr... 15 3.1.7 Huvudomr... 15 3.1.8 Prov... 15 3.1.9 Linje... 16 3.1.10 Linjeinr... 16 3.1.11 Progkurs... 16 3.1.12 Progplk... 17 3.1.13 Examben... 17 3.1.14 Examinr... 17 3.1.15 Utlhsk... 17 3.2 Omhändertagande av meritbeställning... 17 3.3 Läsning av merittabeller... 17 3.3.1 Skyddade personer... 18
Martin Edlund 2015-06-09 SB01_kravspec 6 72 3.3.1.1 MERITBES fylls på... 18 3.3.1.2 Ändring av skydd i Nya... 19 3.3.1.3 Flöde för merithämtning... 19 3.3.2 Ffgkurs, inregffg och godkkurs... 20 3.3.2.1 Nya eller ändrade poster... 20 3.3.2.2 Borttagna registreringar och avbrott... 24 3.3.2.3 Borttagna resultat = ändring i kursregistreringspost i NyA... 27 3.3.3 Fortkurs, inregfo, omkurs och inregom... 30 3.3.3.1 Nya eller ändrade poster... 30 3.3.3.2 Borttagna poster... 32 3.3.4 Godkprov och undkprov... 36 3.3.4.1 Nya eller ändrade poster... 36 3.3.4.2 Borttagna provresultat där det inte finns andra resultat på samma prov 37 3.3.4.3 Borttagna provresultat där det finns underkända resultat innebär ändring på posten i NyA... 39 3.3.5 Utbyte... 41 3.3.5.1 Nya eller ändrade poster... 41 3.3.5.2 Borttagna poster... 41 3.3.6 Inbytegh... 42 3.3.6.1 Nya eller ändrade poster... 42 3.3.6.2 Borttagna poster... 43 3.3.7 Inbytann... 43 3.3.7.1 Nya eller ändrade poster... 43 3.3.7.2 Borttagna poster... 44 3.3.8 Godkprtg... 44 3.3.8.1 Nya eller ändrade poster... 44 3.3.8.2 Borttagna poster... 45 3.3.9 Examen2... 45 3.3.9.1 Nya eller ändrade poster... 45 3.3.9.2 Borttagna poster... 46 3.3.10 Antlin och avbrlin... 47 3.3.10.1 Nya eller ändrade poster... 47 3.3.11 Antinr och avbrinr... 48 3.3.11.1 Nya eller ändrade poster... 48 3.3.12 Upphlin... 50
Martin Edlund 2015-06-09 SB01_kravspec 7 72 3.3.12.1 Nya eller ändrade poster... 50 3.3.13 Ffglin... 51 3.3.13.1 Nya eller ändrade poster... 51 3.3.14 Omreglin... 51 3.3.14.1 Nya eller ändrade poster... 51 3.3.15 Personens totala akademiska poäng per högskola... 52 3.3.16 Ubutstud... 63 3.3.16.1 Nya eller ändrade poster... 63 3.3.17 Ubutrant och ubutreg... 63 3.3.17.1 Nya eller ändrade poster... 63 3.3.18 Ubinstud... 64 3.3.18.1 Nya eller ändrade poster... 64 3.3.19 Ubindrg, ubindbg, ubindbu... 65 3.3.19.1 Nya eller ändrade poster... 65 3.3.19.2 Borttagna poster... 70 3.4 Omhändertagande av bekräftelse... 70 3.5 Omhändertagande av avbeställning... 70 3.6 Generella villkor och kontroller... 70 3.6.1 Datumintervall... 70 3.6.1.1 Nya eller ändrade poster... 70 3.6.1.2 Borttagna poster... 71 3.6.2 Ändring i Ladok... 71 3.6.3 Meriter som inte skall visas... 71 3.6.4 Högskolepoäng... 71 4 Frågor... 71 4.1 Obesvarade... 71 4.2 Besvarade... 71 4.3 Kontakter... 71 1 Inledning 1.1 Syfte Denna batch har som uppgift att ta hand om NyA-systemets beställning av katalog- och meritdata från ett lärosäte.
Martin Edlund 2015-06-09 SB01_kravspec 8 72 1.1.1 Bakgrund NyA-systemet har behov att att få information från Ladoksystemen i form av katalog- och meritdata. Denna information ska uppdateras i NyA varje dygn. Batchen matchas av AF-26 på NyA-sidan. 1.2 Definitioner och förkortningar Ladoksystem LadokNyAbatch 1.3 Referenser [Ref 1] [Ref 2] [Ref 3] Ett lärosätes kompletta installation av studiedokumentationssystemet Ladok, dvs Ladok Nouveau, Ladok Classic, Ladokbatchar i java, Ladok databas. Ett batchprogram i Ladoksystemet som interagerar med NyA-systemet. Modell för java-batchar AF26 överföringsformat.doc, NyA-0599 Termer i NyA Databas.xls 2 Förutsättningar 2.1 Yttre förutsättningar 2.1.1 Beställning från NyA NyA-systemets batchprogram 26 skapar beställningsfiler för vart och ett av Ladoksystemen. Ladoksystemet ska hämta de två beställningsfilerna som ligger på en filarea i NyA-systemet och sedan köra igång batchen. Den ena filen avser beställning av katalogdata och den andra meritdata och består av personnummer + markering om akt.pers är skyddad eller inte i Nya för nya sökanden i en antagningsomgång sedan senaste överföringen. De tillkommande personerna i en antagningsomgång ska sparas undan i Ladok så att systemet har en komplett uppsättning av personer för vilka meriter ska överföras till NyA. NyA skickar även en fil för att bekräfta om senaste överföringen från Ladok-instansen gick bra och eventuellt vad som inte gick bra. Sedan skickar NyA också en fil med personer som de inte vill ha meriter för längre, en avbeställningsfil. 2.1.2 Kommunikation mellan Ladok och NyA Datafiler används i kommunikationen mellan NyA-systemet och Ladoksystemen. De olika filernas namn skall vara enligt nedan: Namnstandard för filerna: Filtyp Beställningsfil meriter Beställningsfil katalogdata Resultatfil Namnmall <HSK>_<BATCH_ID>_<YYYYMMDD_TTMMSS>_MERITS <HSK>_<BATCH_ID>_<YYYYMMDD_TTMMSS>_CATALOG <HSK>_<BATCH_ID>_<YYYYMMDD_TTMMSS>_RESULT
Martin Edlund 2015-06-09 SB01_kravspec 9 72 Bekräfteslefil Avbeställningsfil <HSK>_<BATCH_ID>_<YYYYMMDD_TTMMSS>_CONFIRM <HSK>_<BATCH_ID>_<YYYYMMDD_TTMMSS>_REMOVE Där BATCH_ID är BATCH.BATCH_ID och YYYYMMDD_TTMMSS är BATCH_LOG.EXECUTION_TIME, se [Ref 3]. 2.1.3 Viktig skillnad på hur Nya/Ladok kommunicerar I Nyas beställning på meriter kan första positionen vara satt till Aall, första hämtning eller omhämtning eller Cchange. Om A: o o o o o Om C: o o så tolkar Ladok det som att alla meriter ska skickas. BekräftelsedatumMERITBES.BEKRDAT kommer att blankas. Detta innebär för ladoks del att allt kommer att skickas. Ingen läsning sker i de loggtabeller som finns för förändrade/borttagna meriter. Om en student helt saknar meriter men finns i tabellen NAMN och/eller ALIAS skickas en singel pnrpost. Nya vet då att personen inte har några meriter i ladok längre. När Nya säger omhämtning så betyder det för ladok samma sak som vid första hämtningen. Allt ska skickas. så tolkar ladok det som att förändringar sedan senaste körningen ska skickas. BekräftelsedatumMERITBES.BEKRDAT jämförs med inläggningsdatum för respektive tabell. Om inläggningsdatum > MERITBES.BEKRDAT kommer den posten att skickas. Loggningstabellerna för förändrade/borttagna meriter läses. Alla ingående tabeller i SB01 finns inte i dessa loggningstabeller. Det kan alltså finnas ett glapp mellan vad som finns i nya och ladok och därför behöver Nya köra omhämtninga ibland. 2.1.4 Exempel på hur kommunikationen sker Nya Ladok kommentar Första hämtningen Nya skickar beställning på alla studentera i första pos på raden i beställningsfil Skapar poster i MERITBES där bekräftelsedatumbekrdat sätts till blank. Skickar alla meriter som finns till Nya Från SB01 sätt att se det behandlas typen A alltid likadant. Koll i loggtabellerförändring/borttag görs inte. Om en student helt saknar registreringar/resultat skickas
Martin Edlund 2015-06-09 SB01_kravspec 1072 Tar emot resultatfilen Nästa gång Nya kör vill de ha tillkommande/förändrade/borttagn a poster skickar bekräftelsefil på förra körningen till ladok Skickar beställning på tillkommande meriterc i första pos på raden i beställningsfilen Ladok Uppdaterar bekräftelsedatum i MERITBES utifrån bekräftelsefilen Poster med inläggningsdatum > bekräftelsedatum i MERITBES skickas med i resultatfilen till nya en singel pnrpost Koll görs i loggtabellerförändring/borttag. Om det inte tillkommit något för en student skickas ingenting tillbaka. Tar emot resultatfilen Nästa gång Nya kör vill de ha Omhämtning skickar bekräftelsefil på förra körningen till ladok Skickar beställning på omhämtninga i första pos på raden i beställningsfil Ladok Uppdaterar bekräftelsedatum i MERITBES utifrån bekräftelsefilen Blankar bekräftelsedatum i tabellen MERITBES för alla med A i beställningsfilen Skickar alla meriter som finns till Nya Från Sb01 sätt att se det behandlas typen A alltid likadant. Koll i loggtabellerförändring/borttag görs inte. Tar emot resultatfilen Om en student helt saknar registreringar/resultat skickas en singel pnrpost 2.1.5 Överföring till NyA Katalog- och meritdata sammanställs i en resultatfil som skickas till NyA:s ftp-server. Det exakta utseendet på resultatfilen är specificerat i [Ref 2]. 2.2 Inre förutsättningar Se modelldokument [Ref 1].
Martin Edlund 2015-06-09 SB01_kravspec 1172 3 Krav I texten nedan benämns en kolumn i en tabell i databasen som kolumn och det positionsbestämda fält i resultatfilen vilket motsvarar kolumnen, som fält. 3.1 Läsning av katalogtabeller Katalogtabeller nämnda i [Ref 2] läses, vissa med ett villkor på att bara ändringar som gjorts efter senaste överföringen kommer med. Poster i en tabell med en kolumn för ändringsdatum vilka saknar ändringsdatum kommer att föras över varje gång. Datum för senaste överföring hittar man i tabell KATBEST och kolumn BEKRDAT vilken är bekräftelse på när NyA kunnat lägga in denna typ av katalogdata. Om denna typ av katalogdata aldrig bekräftats överfört är detta datumfält tomt vilket innebär det att det inte finns någon begränsning bakåt i tiden. Uppläst data läggs in som fält med bestämda start- och slutpositioner i en resultatfil efter det att nedan kontroller genomförts. 3.1.1 Namn och telekom I Ladok har vi lagt till en ny komtyp KONTO att i tabellen TELEKOM. Den kan utnyttjas som ett alternativ till fältet KONTO i tabellen NAMN. Kontouppgifter kommer i första hand att hämtas från NAMN i andra hand från TELEKOM. Urvalskriterier NAMN: 1. Om kolumnen sekel är tom använd 19 2. Personen är inte avliden 3. Kolumnen konto måste innehålla något 4. Ta bara med poster ändrade senare än angivet datum, se 3.6.1. Urvalskriterier TELEKOM/NAMN: Sql: 1. Om kolumnen sekel i NAMN är tom använd 19 2. Personen är inte avliden 3. Komtyp är KONTO 4. Kolumnen komadr måste innehålla något 5. Ta bara med poster ändrade senare än angivet datum, se 3.6.1. 6. Om konto under samma tidsintervall inte finns i NAMN COALESCENULLIFTRIMN.SEKEL,'','19' AS SEKEL, TRIMN.PNR AS PNR, TRIMN.KONTO AS KONTO FROM ${LadokSchema}.NAMN N, ${LadokSchema}.KATBEST K WHERE K.TABELL = 'KONTO' AND N.AVLIDEN <> 'J' AND N.KONTO <> '' AND N.INLDAT >= K.BEKRDAT
Martin Edlund 2015-06-09 SB01_kravspec 1272 COALESCENULLIFTRIMN.SEKEL,'','19' AS SEKEL, TRIMT.PNR AS PNR, TRIMT.KOMADR AS KONTO FROM ${LadokSchema}.NAMN N, ${LadokSchema}.TELEKOM T, ${LadokSchema}.KATBEST K WHERE K.TABELL = 'KONTO' AND N.AVLIDEN <> 'J' AND N.PNR = T.PNR AND T.KOMTYP = 'KONTO' AND T.KOMADR <> '' AND T.INLDAT >= K.BEKRDAT AND NOT N.KONTO <> '' AND N.INLDAT >= K.BEKRDAT Värdetransformering: Det 7:e tecknet i pnr 9:e inkl sekel får inte innehålla något annat än en siffra. Är det inte en siffra ska koll mot tabellen INTBOKST läsas där o o o 3.1.2 Inst TYP=N INTTKN=sjunde tecknet Om träff är pnr godkänt och annars tas posten inte med. Läs alla poster i tabellen. Inga urvalskriterier eller kontroller. 3.1.3 Kurs Urvalskriterier: 1. Ta bara med poster ändrade senare än angivet datum, se 3.6.1. Värdetransformering: 1. Om kolumnen poang är null eller blankt lägg in 0.0 i fältet. 2. Om kolumnen nedlagd = N,blankt eller null sätt fältet status = 1. Om nedlagd = J sätt fältet status = 0. 3. Om kurser berättigar högskolepoäng, sätt fältet för poänggivande till 1, annars 0. Icke högskolepoänggivande kurser tillhör LOKSERIE.SERIE = NYA. I kopplingstabell LOKKURS ska det finnas en post där KURS = <aktuell kurskod>, SERIE = NYA och LOKKOD = EJPOANG för en kurs som inte berättigar högskolepoäng. 4. Kontroll av fältet Ändring i Ladok, se 3.6.2. 5. Om UTBNIVA.KURS = blank ska 1ett skickas till NYA 6. Om KURS.KONVERT = J a. Sätt CREDITS_CONVERTED konverterad.kurs till 1 7. Om KURS.KONVERT<> J a. Sätt CREDITS_CONVERTED konverterad.kurs till 0
Martin Edlund 2015-06-09 SB01_kravspec 1372 Sql: TRIMK.KOD as KOD, TRIMK.BENAMNS as BENAMNS, TRIMK.BENAMNE as BENAMNE, coalescek.poang, 0.0 as POANG, TRIMK.INST as INST, TRIMK.BSKALA as BSKALA, TRIMK.LKURS as LKURS, TRIMK.EKURS as EKURS, TRIMK.KAGRPSCB as KAGRPSCB, TRIMK.KNIVAUHA as KNIVAUHA, TRIMK.FRIV as FRIV, TRIMK.NEDLAGD as NEDLAGD, TRIMK.DJUP as DJUP, TRIMK.EXAMIN as EXAMIN, coalescek.ectsp, 0.0 as ECTSP, TRIMK.IDATUM as IDATUM, TRIMK.UTBNIVA as UTBNIVA, TRIMK.VALUTA as VALUTA, TRIMK.IANV as IANV FROM ${LadokSchema}.KURS K, ${LadokSchema}.KATBEST KB WHERE K.IDATUM >= KB.BEKRDAT AND KB.TABELL = 'KURS' L.KURS, L.SERIE, L.LOKKOD FROM ${LadokSchema}.LOKKURS L WHERE L.KURS = K.KOD AND L.SERIE = #serie# AND L.LOKKOD = #lokkod# 3.1.4 Kursuomr Urvalskriterier: 1. Ta bara med poster ändrade senare än angivet datum, se 3.6.1. Värdetransformering: Sql: 1. Om kolumnen procent är null eller blankt lägg in 0 i fältet. 2. Kontroll av fältet Ändring i Ladok, se 3.6.2. TRIMK.KURS as KURS, TRIMK.UTBOMR as UTBOMR, coalescek.procent, 0 as PROCENT, TRIMK.IDATUM as IDATUM, TRIMK.IANV as IANV FROM ${LadokSchema}.KURSUOMR K, ${LadokSchema}.KATBEST KAT WHERE KAT.TABELL = 'KURSUOMR' AND K.IDATUM >= KAT.BEKRDAT
Martin Edlund 2015-06-09 SB01_kravspec 1472 3.1.5 Dklass Läs alla poster i tabellen. Inga urvalskriterier eller kontroller.
Martin Edlund 2015-06-09 SB01_kravspec 1572 3.1.6 Kurshomr Skriver till posten COURSEMAJOR2 från tabellen KURSHOMR. Hela tabellen skickas varje gång. Ladok KURSKOD HUVUDOMR FORDJUP NYA-posten: COURSEMAJOR2 Kurskod COURSE_ID Huvudområde FIELD_OF_LOCAL_ MAJOR_ID Fördjupningskod EDUCATIONLEVELSPEC_ ID 3.1.7 Huvudomr Skriver till posten LOCALMAJOR från tabellen HUVUDOMR. Hela tabellen skickas varje gång. Ladok HUVUDOMR BENAMNS NEDLAGD HUVOMGRP kan vara blank men det tar Nya hand om på sin sida NYA-posten: LOCALMAJOR Kod för huvudområde FIELD_OF_LOCAL_ MAJOR_ID Benämning sv FIELD_OF_LOCAL_MAJOR Huvudområdet nedlagt STATE Om NEDLAGD = J sätts 0 Annars Sätts 1 Huvudområdesgrupp FIELD_OF_NATIONAL_ MAJOR 3.1.8 Prov Urvalskriterier: 1. Ta bara med poster ändrade senare än angivet datum, se 3.6.1.
Martin Edlund 2015-06-09 SB01_kravspec 1672 Värdetransformering: Sql: 1. Om kolumnen poang är null sätt fältet poäng till 0.0. 2. Kontroll av fältet Ändring i Ladok, se 3.6.2. TRIMP.KURS as KURS, TRIMP.PROV as PROV, TRIMP.BENAMN as BENAMN, coalescep.poang, 0.0 as POANG, TRIMP.BSKALA as BSKALA, TRIMP.ENDAPROV as ENDAPROV, TRIMP.BENAMNE as BENAMNE, TRIMP.PROJARB as PROJARB, TRIMP.INST as INST, coalescep.ectsp, 0.0 as ECTSP, TRIMP.IDATUM as IDATUM, TRIMP.IANV as IANV FROM ${LadokSchema}.PROV P, ${LadokSchema}.KATBEST K WHERE P.IDATUM >= K.BEKRDAT AND K.TABELL = 'PROV' 3.1.9 Linje Läs alla poster i tabellen. Värdetransformering: 1. Om kolumnen linjereg N, blank eller null sätt fältet status = 0. Om linjereg = J sätt fältet status = 1. 2. Om kolumnen nedlagd = N, blank eller null sätt fältet status = 1. Om nedlagd = J sätt fältet status = 0. 3. Om kolumnen fantterm är null sätt fältet till en tom sträng. 4. Om kolumnen santterm är null sätt fältet till en tom sträng. 5. Om kolumnen tiltniva = blank ska 1ett skickas till NYA 3.1.10 Linjeinr Läs alla poster i tabellen. Värdetransformering: 1. Om kolumnen nedlagd = N, blank eller null sätt fältet status = 1. Om nedlagd = J sätt fältet status = 0. 2. Om kolumnen fantterm är null sätt fältet till en tom sträng. 3. Om kolumnen santterm är null sätt fältet till en tom sträng. 3.1.11 Progkurs Läs alla poster i tabellen. Värdetransformering: 1. Om kolumnen proginr = _ sätt fältet till en tom sträng.
Martin Edlund 2015-06-09 SB01_kravspec 1772 3.1.12 Progplk Läs poster i tabellen vars kalendertermin TERMIN är samma som eller senare än innevarande EGENHSK.INTERMIN. Värdetransformering: 1. Om kolumnen proginr = _ sätt fältet till en tom sträng. 2. Om kolumnen fromterm är null sätt fältet till en tom sträng. 3. Om kolumnen typ är null sätt fältet till en tom sträng. 3.1.13 Examben Läs alla poster i tabellen. Sålla bort de som har EXTYP=X. Värdetransformering: 1. Om kolumnen extyp är null sätt fältet examenstyp till 0. 3.1.14 Examinr Läs alla poster i tabellen. Läs EXAMBEN EXAMBEN.KOD=EXAMINR.EXKOD EXAMBEN.EXTYP=X Om träff ska aktuell EXAMINR sållas bort. Om bom skriv ut. Värdetransformering: 1. Om kolumnen defpoang är null sätt fältet poäng till 0.0. 3.1.15 Utlhsk Läs alla poster i tabellen. 3.2 Omhändertagande av meritbeställning Batchen ska lägga in personerna från meritbeställningsfilen i en tabell, MERITBES vilken innehåller de personer som är med i en öppen antagningsomgång. Denna tabell håller ordning på när den senast bekräftade överföringen gjordes för var och en av personerna för vilka meriter ska hämtas. 3.3 Läsning av merittabeller Samtliga meritdata-tabeller nämnda i [Ref 2] läses förutom INBYTEGH, INBYTANN och GODKPRTG med villkoret att bara ändringar som gjorts efter datum för den senast bekräftade överföringen kommer med. Det datumet ligger sparat på individnivå i tabellen MERITBES. Meritposter som saknar ändringsdatum kommer att föras över varje gång. datum för den senast bekräftade överföringen kan vara tomt vilket innebär det att det inte finns någon begränsning bakåt i tiden. Uppläst data läggs in som fält med bestämda start- och
Martin Edlund 2015-06-09 SB01_kravspec 1872 slutpositioner i en resultatfil efter det att nedan kontroller genomförts. I texten nedan benämns en kolumn i en tabell i databasen som kolumn och det positionsbestämda fält i resultatfilen vilket motsvarar kolumnen, som fält. Vid beställning av omhämtning av meriter ska personen alltid komma med som en personpost i svarsfilen även om personen helt saknar meriter. Undantag från detta är personer som har skydd i Ladok men saknar skydd i Nya då dessa endast ska komma med som en borttagningspost i svarsfilen. 3.3.1 Skyddade personer För överföringsformatet se clearcase och dokumentet AF26 överföringsformat. I den version som går ut ifeb 2010 kommer nya även att skicka med en markering huvuvida akt.person är skyddad eller inte. Vi använder denna markering för att se till att rätt data skickas till Nya. Tabellen MERITBES görs om. Se tabell:meritbes fylls på. MERITBES.MERITPNR används vid alla merithämtningar Sekel ska skickas till Nya. 3.3.1.1 MERITBES fylls på MERITBES Tas från/värde Kommentar NYAPNR Nyafilen/PNRTEMP Personens riktiga pnr från nya NYASEKEL Nyafilen/PNRTEMP Sekel från nya NYASKYDD Nyafilen/PNRTEMP J/N från nya MERITPNR ALIAS eller NYAPNR För att fylla på MERITPNR läses på ALIAS.SPNR med pnr från Nya. 1.Om träff och det är ett aktivt beslutstatus=j, ingen hänsyn tas till datumintervallet sätts MERITBES.MERITPNR till ALIAS.PNRpersonens aliaspnr i ladok. 2. Om träff och det är inaktivt beslutstatus=n eller preliminärtstatus=p ska kontroll om alias pnr eller riktigt pnr används i ladok. Alla poster i ALIAS gås igenom tills träff i NAMN. Läs i NAMN med riktigt pnr från Nya Om träff används studentens riktiga pnr i ladokej skyddad längre eller har aldrig varit skyddad Sätt MERITBES.MERITPNR till riktigt pnr
Martin Edlund 2015-06-09 SB01_kravspec 1972 från Nya Läs i NAMN med ALIAS.PNRstudentens aliaspnr Om träff används fortfarande aliaspnr och räknas som skyddad Sätt MERITBES.MERITPNR till ALIAS.PNRpersonens aliaspnr i ladok. 3.I övriga fall sätts MERITPNR till pnr från nyasamma som NYAPNR. BEKRDAT Körningsdatum/blankt 3.3.1.2 Ändring av skydd i Nya Om någon ändring av skydd sker i Nya för en person kommer personen ifråga att finnas i Nyas REMOVE-fil. Ladok tar bort personen ur MERITBES. Nya skickar sedan personen i MERITS-filen med senaste skyddsmarkeringen. Med denna hantering behöver Ladok inte göra något tillägg i koden. 3.3.1.3 Flöde för merithämtning 1. En merit-beställningsfil hämtas hem från NyA 2. Den läses in och läggs in i tabell PNRTEMP. 3. Lägg in personer i PNRTEMP till MERITBES. Se tabell nedan 4. Sök fram personer MED personskydd i båda systemen av de som finns i MERITBES. a. NYASKYDD=J och NYAPNR<>MERITPNR 5. Sök fram personer UTAN personskydd av de som finns i MERITBES. a. NYASKYDD=N och NYAPNR=MERITPNR 6. Sök fram personer MED personskydd i Nya men inte i ladok a. NYASKYDD=J och NYAPNR=MERITPNR 7. Läs upp meriter. a. Sekel ska också skickas till Nya 8. Sök fram personer MED personskydd i Ladok men inte i NyA av de som finns i MERITBES. Sätt ihop en person-post för var och en av dessa. Posten skall ge en order till NyA att ta bort alla meritdata för den personen. a. NYASKYDD=N och NYAPNR<>MERITPNR
Martin Edlund 2015-06-09 SB01_kravspec 2072 i. För dessa personer ska följande signaleras till Nya: 1. rad 1: [PERSON], rad 2:IPNRD<12-ställigt pnr> obs! inget blanksteg före pnr12, där IPNRD för NyA betyder ta bort alla meriter för följande person. b. Sätt BEKRDAT=blankt. Om ladok vid nästa körning har tagit bort aktivt beslut kommer alla meritdata att skickas iom att BEKRDAT=blankt 9. Ta bort de pnr riktiga och fingerade som finns i MERITBES.MERITPNR. 3.3.2 Ffgkurs, inregffg och godkkurs 3.3.2.1 Nya eller ändrade poster Urvalskriterier: 1. Ta bara med poster för de personer som finns i beställningstabellen MERITBES och i NAMN. 2. Ta bara med poster ändrade senare än angivet datum, se 3.6.1. Idatum och itid hämtas från FFGKURS, såvida inte personen är godkänd på kursen eller avbrutit den. Då tas idatum och itid från GODKKURS, i fallet godkänd kurs, eller INREGFFG, i fallet avbrott på kurs. 3. Ta bara med meriter som skall visas, se Fel! Hittar inte referenskälla. Sql selectid= getffggodkinregmeritbes <!-- DEL 1. HÄMTA ALLA ÄNNU EJ GODKÄNDA FFG-KURSER SOM INTE ÄR AVBRUTNA, EXKLUDERA FFG-POSTER MED BORTTAGNA KURSRESULTAT ENDAST VID FÖRÄNDRING MERITBES.BEKRDAT <> '' DE HÄMTAS DOCK VID EN TOTALHÄMTNING. DEL 2. HÄMTA ALLA GODKÄNDA KURSER DEL 3. HÄMTA ALLA AVBRUTNA FFG-KURSER DEL 4. HÄMTA ALLA AVBRUTNA FFG-KURSER SOM ÅTERUPPTAGITS OCH NU ÄR GODKÄNDA ÅTGÄRD 15811 --> 'I' AS DBCHANGE, M.NYASEKEL TRIMM.NYAPNR AS PNR, TRIMF.KURS AS KURS, TRIMF.TERMIN AS TERMIN, TRIMF.PROGR AS PROGR, TRIMF.PROGINR AS PROGINR, TRIMF.KURSTID AS KURSTID, TRIMF.KURSTYP AS KURSTYP, TRIMF.KURSTAKT AS KURSTAKT, TRIMF.UNDFORM AS UNDFORM, TRIMF.ORT AS ORT, '' AS BETYG, '' AS DATUM, '0' AS AVBROTT, '' AS AVBRDAT, TRIMF.IDATUM AS IDATUM, TRIMF.ITID AS ITID FROM $order$ ${LadokSchema}.MERITBES M, ${LadokSchema}.FFGKURS F WHERE F.PNR = M.MERITPNR
Martin Edlund 2015-06-09 SB01_kravspec 2172 AND F.IDATUM >= M.BEKRDAT * FROM ${LadokSchema}.GODKKURS G WHERE G.PNR = F.PNR AND G.KURS = F.KURS * FROM ${LadokSchema}.INREGFFG I WHERE I.PNR = F.PNR AND I.KURS = F.KURS AND I.INOMKORT = 'N' * FROM ${LadokSchema}.BORTRES B WHERE B.URTABELL = 'GODKKURS' AND B.TYP = 'B' AND B.PNR = F.PNR AND B.KURS = F.KURS AND M.BEKRDAT!= '' AND M.BEKRDAT IS NOT NULL * FROM ${LadokSchema}.LOKKURS L WHERE L.KURS = F.KURS AND L.LOKKOD = 'EJMERIT' 'I' AS DBCHANGE, M.NYASEKEL TRIMM.NYAPNR AS PNR, TRIMF.KURS AS KURS, TRIMF.TERMIN AS TERMIN, TRIMF.PROGR AS PROGR, TRIMF.PROGINR AS PROGINR, TRIMF.KURSTID AS KURSTID, TRIMF.KURSTYP AS KURSTYP, TRIMF.KURSTAKT AS KURSTAKT, TRIMF.UNDFORM AS UNDFORM, TRIMF.ORT AS ORT, TRIMG.BETYG AS BETYG, TRIMG.DATUM AS DATUM, '0' AS AVBROTT, '' AS AVBRDAT, TRIMG.IDATUM AS IDATUM, TRIMG.ITID AS ITID FROM $order$ ${LadokSchema}.MERITBES M, ${LadokSchema}.FFGKURS F, ${LadokSchema}.GODKKURS G
Martin Edlund 2015-06-09 SB01_kravspec 2272 WHERE F.PNR = M.MERITPNR AND F.PNR = G.PNR AND F.KURS = G.KURS AND G.IDATUM >= M.BEKRDAT * FROM ${LadokSchema}.INREGFFG I WHERE I.PNR = F.PNR AND I.KURS = F.KURS AND I.INOMKORT = 'N' * FROM ${LadokSchema}.LOKKURS L WHERE L.KURS = F.KURS AND L.LOKKOD = 'EJMERIT' 'I' AS DBCHANGE, M.NYASEKEL TRIMM.NYAPNR AS PNR, TRIMI.KURS AS KURS, TRIMI.TERMIN AS TERMIN, TRIMI.PROGR AS PROGR, TRIMI.PROGINR AS PROGINR, TRIMI.KURSTID AS KURSTID, TRIMI.KURSTYP AS KURSTYP, TRIMI.KURSTAKT AS KURSTAKT, TRIMI.UNDFORM AS UNDFORM, TRIMI.ORT AS ORT, '' AS BETYG, '' AS DATUM, '1' AS AVBROTT, TRIMI.AVBRDAT AS AVBRDAT, TRIMI.IDATUM AS IDATUM, TRIMI.ITID AS ITID FROM $order$ ${LadokSchema}.MERITBES M, ${LadokSchema}.INREGFFG I WHERE I.PNR = M.MERITPNR AND I.INOMKORT = 'N' AND I.IDATUM >= M.BEKRDAT * FROM ${LadokSchema}.FFGKURS F WHERE F.PNR = I.PNR AND F.KURS = I.KURS * FROM ${LadokSchema}.GODKKURS G WHERE G.PNR = I.PNR
Martin Edlund 2015-06-09 SB01_kravspec 2372 AND G.KURS = I.KURS * FROM ${LadokSchema}.LOKKURS L WHERE L.KURS = I.KURS AND L.LOKKOD = 'EJMERIT' 'I' AS DBCHANGE, M.NYASEKEL TRIMM.NYAPNR AS PNR, TRIMI.KURS AS KURS, TRIMI.TERMIN AS TERMIN, TRIMI.PROGR AS PROGR, TRIMI.PROGINR AS PROGINR, TRIMI.KURSTID AS KURSTID, TRIMI.KURSTYP AS KURSTYP, TRIMI.KURSTAKT AS KURSTAKT, TRIMI.UNDFORM AS UNDFORM, TRIMI.ORT AS ORT, TRIMG.BETYG AS BETYG, TRIMG.DATUM AS DATUM, '1' AS AVBROTT, TRIMI.AVBRDAT AS AVBRDAT, TRIMI.IDATUM AS IDATUM, TRIMI.ITID AS ITID FROM $order$ ${LadokSchema}.MERITBES M, ${LadokSchema}.INREGFFG I, ${LadokSchema}.GODKKURS G WHERE I.PNR = M.MERITPNR AND I.PNR = G.PNR AND I.KURS = G.KURS AND I.INOMKORT = 'N' AND G.IDATUM >= M.BEKRDAT * FROM ${LadokSchema}.FFGKURS F WHERE F.PNR = I.PNR AND F.KURS = I.KURS * FROM ${LadokSchema}.LOKKURS L WHERE L.KURS = I.KURS AND L.LOKKOD = 'EJMERIT' Värdetransformering:
Martin Edlund 2015-06-09 SB01_kravspec 2472 1. Om kolumnen proginr = _ sätt fältet till en tom sträng. 2. Om kolumnen kurstyp = _ sätt fältet till en tom sträng. 3. Om posten återfinns i FFGKURS eller i GODKKURS sätts fältet Avbrott till 0. 4. Om posten återfinns i INREGFFG med INOMKORT=N: sätts fältet Avbrott till 1. 5. Om posten återfinns i INREGFFG med INOMKORT=J: a. sätts fältet Avbrott till 1 b. I första kolumnen på raden sätts ett D på Nyasidan betyder detta att befintlig post tas bort 6. Kontroll av fältet Ändring i Ladok, se 3.6.2. 3.3.2.2 Borttagna registreringar och avbrott Tabeller: BORTREGK, BORTRES, MERITBES och NAMN Urvalskriterier: Borttagningar dels i BORTREGK av förstagångsregistreringar och avbrutna sådana, dels i BORTRES av godkända kurser vilket resulterar i att registreringen saknar resultat det blir en naken registrering igen. Borttagningar dels i BORTREGK: 1. Ta bara med poster för de personer som finns i beställningstabellen MERITBES och i NAMN. 2. Ta bara med borttagna poster. BORTREGK.TYP = B. 3. Ta bara med poster borttagna senare än angivet datum, se 3.6.1, vilket kontrolleras mot BORTREGK.IDATUM. Ta inte med borttagna poster vid en totalhämtning. 4. Hämta tre olika delmängder beroende på var posten låg innan den togs bort: a. BORTREGK.URTABELL = FFGKURS b. BORTREGK.URTABELL = INREGFFG 5. Endast nyckelkolumnerna för motsvarande tabell i NyA: PNR och KURS är intressanta att fylla med data. En fiktiv kolumn CHANGE, vilken indikerar vad som ska göras med posten i NyA, sätts till D DELETE. SQL id="getffggodkinregmeritbesdeleted" <!-- DEL 1. BORTTAGNA KURSREGISTRERINGAR ELLER BORTTAGNA KURSAVBROTT = BORTTAG AV KURSPOST I NYA, ENDAST VID FÖRÄNDRING MERITBES.BEKRDAT <> '' DEL 2. BORTTAGNA KURSRESULTAT = ÄNDRING AV KURSPOST I NYA, ENDAST VID FÖRÄNDRING MERITBES.BEKRDAT <> '' DEL 3. AVBROTT INOMKORT = 'J' = BORTTAG AV REGISTRERING I NYA Åtgärd 16032 --> 'D' AS DBCHANGE, M.NYASEKEL TRIMM.NYAPNR AS PNR, TRIMB.KURS AS KURS, '' AS TERMIN, '' AS PROGR,
Martin Edlund 2015-06-09 SB01_kravspec 2572 '' AS PROGINR, '' AS KURSTID, '' AS KURSTYP, '' AS KURSTAKT, '' AS UNDFORM, '' AS ORT, '' AS BETYG, '' AS DATUM, '' AS AVBROTT, '' AS AVBRDAT, TRIMB.IDATUM AS IDATUM, TRIMB.ITID AS ITID FROM ${LadokSchema}.BORTREGK B, ${LadokSchema}.MERITBES M WHERE B.URTABELL = 'FFGKURS' OR B.URTABELL = 'INREGFFG' AND B.TYP = 'B' AND B.PNR = M.MERITPNR AND M.BEKRDAT!= '' AND M.BEKRDAT IS NOT NULL AND B.IDATUM >= M.BEKRDAT AND B.IDATUM >= #value# * FROM ${LadokSchema}.FFGKURS F WHERE F.PNR = B.PNR AND F.KURS = B.KURS * FROM ${LadokSchema}.INREGFFG I WHERE I.PNR = B.PNR AND I.KURS = B.KURS 'I' AS DBCHANGE, M.NYASEKEL TRIMM.NYAPNR AS PNR, TRIMF.KURS AS KURS, TRIMF.TERMIN AS TERMIN, TRIMF.PROGR AS PROGR, TRIMF.PROGINR AS PROGINR, TRIMF.KURSTID AS KURSTID, TRIMF.KURSTYP AS KURSTYP, TRIMF.KURSTAKT AS KURSTAKT, TRIMF.UNDFORM AS UNDFORM, TRIMF.ORT AS ORT, '' AS BETYG, '' AS DATUM, '0' AS AVBROTT, '' AS AVBRDAT, TRIMB.IDATUM AS IDATUM, TRIMB.ITID AS ITID
Martin Edlund 2015-06-09 SB01_kravspec 2672 FROM ${LadokSchema}.FFGKURS F, ${LadokSchema}.BORTRES B, ${LadokSchema}.MERITBES M WHERE B.URTABELL = 'GODKKURS' AND B.TYP = 'B' AND B.PNR = M.MERITPNR AND B.PNR = F.PNR AND B.KURS = F.KURS AND M.BEKRDAT!= '' AND M.BEKRDAT IS NOT NULL AND B.IDATUM >= M.BEKRDAT AND B.IDATUM >= #value# * FROM ${LadokSchema}.GODKKURS G WHERE G.PNR = B.PNR AND G.KURS = B.KURS * FROM ${LadokSchema}.LOKKURS L WHERE L.KURS = B.KURS AND L.LOKKOD = 'EJMERIT' 'D' AS DBCHANGE, M.NYASEKEL TRIMM.NYAPNR AS PNR, TRIMI.KURS AS KURS, TRIMI.TERMIN AS TERMIN, TRIMI.PROGR AS PROGR, TRIMI.PROGINR AS PROGINR, TRIMI.KURSTID AS KURSTID, TRIMI.KURSTYP AS KURSTYP, TRIMI.KURSTAKT AS KURSTAKT, TRIMI.UNDFORM AS UNDFORM, TRIMI.ORT AS ORT, '' AS BETYG, '' AS DATUM, '1' AS AVBROTT, TRIMI.AVBRDAT AS AVBRDAT, TRIMI.IDATUM AS IDATUM, TRIMI.ITID AS ITID FROM ${LadokSchema}.MERITBES M, ${LadokSchema}.INREGFFG I WHERE I.PNR = M.MERITPNR AND I.INOMKORT = 'J' AND I.IDATUM >= M.BEKRDAT * FROM ${LadokSchema}.FFGKURS F WHERE F.PNR = I.PNR AND F.KURS = I.KURS
Martin Edlund 2015-06-09 SB01_kravspec 2772 * FROM ${LadokSchema}.GODKKURS G WHERE G.PNR = I.PNR AND G.KURS = I.KURS * FROM ${LadokSchema}.LOKKURS L WHERE L.KURS = I.KURS AND L.LOKKOD = 'EJMERIT' 3.3.2.3 Borttagna resultat = ändring i kursregistreringspost i NyA Tabeller: FFGKURS, BORTRES, MERITBES och NAMN Urvalskriterier: 1. Hämta de poster där BORTRES.URTABELL = GODKKURS 2. Ta bara med borttagna poster. BORTRES.TYP = B. 3. Ta bara med poster för de personer som finns i beställningstabellen MERITBES och i NAMN. 4. Det finnas en kursregistrering på borttagen godkänd kurs m a o motsvarande post finns i FFGKURS. 5. Ta bara med poster borttagna senare än angivet datum, se 3.6.1, vilket kontrolleras mot BORTRES.IDATUM. Ta inte med borttagna poster vid en totalhämtning. 6. Ta bara med meriter som skall visas, se Fel! Hittar inte referenskälla. 7. Hämta data till samtliga fält från FFGKURS utom IDATUM och ITID som hämtas från BORTRES. BETYG, DATUM godkännandedatum och AVBRDAT sätts till blankt och AVBROTT till 0. En fiktiv kolumn CHANGE, vilken indikerar vad som ska göras med posten i NyA, sätts till I INSERT = ändring. id="getffggodkinregmeritbesdeleted" <!-- DEL 1. BORTTAGNA KURSREGISTRERINGAR ELLER BORTTAGNA KURSAVBROTT = BORTTAG AV KURSPOST I NYA, ENDAST VID FÖRÄNDRING MERITBES.BEKRDAT <> '' DEL 2. BORTTAGNA KURSRESULTAT = ÄNDRING AV KURSPOST I NYA, ENDAST VID FÖRÄNDRING MERITBES.BEKRDAT <> '' DEL 3. AVBROTT INOMKORT = 'J' = BORTTAG AV REGISTRERING I NYA Åtgärd 16032 --> 'D' AS DBCHANGE, M.NYASEKEL TRIMM.NYAPNR AS PNR, TRIMB.KURS AS KURS, '' AS TERMIN, '' AS PROGR, '' AS PROGINR, '' AS KURSTID, '' AS KURSTYP, '' AS KURSTAKT,
Martin Edlund 2015-06-09 SB01_kravspec 2872 '' AS UNDFORM, '' AS ORT, '' AS BETYG, '' AS DATUM, '' AS AVBROTT, '' AS AVBRDAT, TRIMB.IDATUM AS IDATUM, TRIMB.ITID AS ITID FROM ${LadokSchema}.BORTREGK B, ${LadokSchema}.MERITBES M WHERE B.URTABELL = 'FFGKURS' OR B.URTABELL = 'INREGFFG' AND B.TYP = 'B' AND B.PNR = M.MERITPNR AND M.BEKRDAT!= '' AND M.BEKRDAT IS NOT NULL AND B.IDATUM >= M.BEKRDAT AND B.IDATUM >= #value# * FROM ${LadokSchema}.FFGKURS F WHERE F.PNR = B.PNR AND F.KURS = B.KURS * FROM ${LadokSchema}.INREGFFG I WHERE I.PNR = B.PNR AND I.KURS = B.KURS 'I' AS DBCHANGE, M.NYASEKEL TRIMM.NYAPNR AS PNR, TRIMF.KURS AS KURS, TRIMF.TERMIN AS TERMIN, TRIMF.PROGR AS PROGR, TRIMF.PROGINR AS PROGINR, TRIMF.KURSTID AS KURSTID, TRIMF.KURSTYP AS KURSTYP, TRIMF.KURSTAKT AS KURSTAKT, TRIMF.UNDFORM AS UNDFORM, TRIMF.ORT AS ORT, '' AS BETYG, '' AS DATUM, '0' AS AVBROTT, '' AS AVBRDAT, TRIMB.IDATUM AS IDATUM, TRIMB.ITID AS ITID FROM ${LadokSchema}.FFGKURS F, ${LadokSchema}.BORTRES B, ${LadokSchema}.MERITBES M WHERE B.URTABELL = 'GODKKURS' AND B.TYP = 'B' AND B.PNR = M.MERITPNR
Martin Edlund 2015-06-09 SB01_kravspec 2972 AND B.PNR = F.PNR AND B.KURS = F.KURS AND M.BEKRDAT!= '' AND M.BEKRDAT IS NOT NULL AND B.IDATUM >= M.BEKRDAT AND B.IDATUM >= #value# * FROM ${LadokSchema}.GODKKURS G WHERE G.PNR = B.PNR AND G.KURS = B.KURS * FROM ${LadokSchema}.LOKKURS L WHERE L.KURS = B.KURS AND L.LOKKOD = 'EJMERIT' 'D' AS DBCHANGE, M.NYASEKEL TRIMM.NYAPNR AS PNR, TRIMI.KURS AS KURS, TRIMI.TERMIN AS TERMIN, TRIMI.PROGR AS PROGR, TRIMI.PROGINR AS PROGINR, TRIMI.KURSTID AS KURSTID, TRIMI.KURSTYP AS KURSTYP, TRIMI.KURSTAKT AS KURSTAKT, TRIMI.UNDFORM AS UNDFORM, TRIMI.ORT AS ORT, '' AS BETYG, '' AS DATUM, '1' AS AVBROTT, TRIMI.AVBRDAT AS AVBRDAT, TRIMI.IDATUM AS IDATUM, TRIMI.ITID AS ITID FROM ${LadokSchema}.MERITBES M, ${LadokSchema}.INREGFFG I WHERE I.PNR = M.MERITPNR AND I.INOMKORT = 'J' AND I.IDATUM >= M.BEKRDAT * FROM ${LadokSchema}.FFGKURS F WHERE F.PNR = I.PNR AND F.KURS = I.KURS * FROM ${LadokSchema}.GODKKURS G WHERE G.PNR = I.PNR
Martin Edlund 2015-06-09 SB01_kravspec 3072 AND G.KURS = I.KURS * FROM ${LadokSchema}.LOKKURS L WHERE L.KURS = I.KURS AND L.LOKKOD = 'EJMERIT' 3.3.3 Fortkurs, inregfo, omkurs och inregom 3.3.3.1 Nya eller ändrade poster Urvalskriterier: 1. Ta bara med poster för de personer som finns i beställningstabellen MERITBES och i NAMN. 2. Ta bara med poster ändrade senare än angivet datum, se 3.6.1. Beroende på typ av registrering hämtas idatum och itid från antingen FORTKURS eller OMKURS, såvida inte personen avbrutit kursen. Då tas idatum och itid från INREGFFG eller INREGOM. 3. Ta bara med meriter som skall visas, se Fel! Hittar inte referenskälla. SQL id="getomfortinregmeritbes" <!-- FORTSÄTTNINGS- OCH OMREGISTRERINGAR SEDAN SENASTE BEKRÄFTADE ÖVERFÖRING DEL 1. HÄMTA ALLA FORTSÄTTNINGSREGISTRERINGAR UTAN AVBROTT DEL 2. HÄMTA ALLA AVBROTT PÅ FORTSÄTTNINGSREGISTRERINGAR DEL 3. HÄMTA ALLA OMREGISTRERINGAR UTAN AVBROTT DEL 4. HÄMTA ALLA AVBROTT PÅ OMREGISTRERINGAR --> 'I' AS DBCHANGE, M.NYASEKEL TRIMM.NYAPNR AS PNR, TRIMF.KURS AS KURS, TRIMF.TERMIN AS TERMIN, 'FO' AS REGTYP, '0' AS AVBROTT, '' AS AVBRDAT, TRIMF.IDATUM AS IDATUM, TRIMF.ITID AS ITID, '' AS URPOST FROM ${LadokSchema}.FORTKURS F, ${LadokSchema}.MERITBES M WHERE F.PNR = M.MERITPNR AND F.IDATUM >= M.BEKRDAT * FROM ${LadokSchema}.INREGFO I WHERE I.PNR = F.PNR AND I.KURS = F.KURS AND I.TERMORDN = F.TERMORDN
Martin Edlund 2015-06-09 SB01_kravspec 3172 * FROM ${LadokSchema}.LOKKURS L WHERE L.KURS = F.KURS AND L.LOKKOD = 'EJMERIT' 'I' AS DBCHANGE, M.NYASEKEL TRIMM.NYAPNR AS PNR, TRIMI.KURS AS KURS, TRIMI.TERMIN AS TERMIN, 'FO' AS REGTYP, '1' AS AVBROTT, TRIMI.AVBRDAT AS AVBRDAT, TRIMI.IDATUM AS IDATUM, TRIMI.ITID AS ITID, '' AS URPOST FROM ${LadokSchema}.INREGFO I, ${LadokSchema}.MERITBES M WHERE I.PNR = M.MERITPNR AND I.IDATUM >= M.BEKRDAT AND I.INOMKORT = 'N' * FROM ${LadokSchema}.LOKKURS L WHERE L.KURS = I.KURS AND L.LOKKOD = 'EJMERIT' 'I' AS DBCHANGE, M.NYASEKEL TRIMM.NYAPNR AS PNR, TRIMO.KURS AS KURS, TRIMO.TERMIN AS TERMIN, 'OM' AS REGTYP, '0' AS AVBROTT, '' AS AVBRDAT, TRIMO.IDATUM AS IDATUM, TRIMO.ITID AS ITID, '' AS URPOST FROM ${LadokSchema}.OMKURS O, ${LadokSchema}.MERITBES M WHERE O.PNR = M.MERITPNR AND O.IDATUM >= M.BEKRDAT * FROM ${LadokSchema}.INREGOM I WHERE I.PNR = O.PNR AND I.KURS = O.KURS
Martin Edlund 2015-06-09 SB01_kravspec 3272 * FROM ${LadokSchema}.LOKKURS L WHERE L.KURS = O.KURS AND L.LOKKOD = 'EJMERIT' 'I' AS DBCHANGE, M.NYASEKEL TRIMM.NYAPNR AS PNR, TRIMI.KURS AS KURS, TRIMI.TERMIN AS TERMIN, 'OM' AS REGTYP, '1' AS AVBROTT, TRIMI.AVBRDAT AS AVBRDAT, '' AS IDATUM, '' AS ITID, '' AS URPOST FROM ${LadokSchema}.INREGOM I, ${LadokSchema}.MERITBES M WHERE I.PNR = M.MERITPNR AND I.IDATUM >= M.BEKRDAT * FROM ${LadokSchema}.LOKKURS L WHERE L.KURS = I.KURS AND L.LOKKOD = 'EJMERIT' Värdetransformering: 1. Fält Typ av registrering. Om posten återfinns i FORTKURS eller INREGFO sätts det till FO. Om posten återfinns i OMKURS eller INREGOM sätts det till OM. 2. Om posten återfinns i FORTKURS eller OMKURS sätts fältet Avbrott till 0. Om posten återfinns i INREGOM sätts fältet Avbrott till 1. 3. Om posten återfinns i INREGFO med INOMKORT=N: sätts fältet Avbrott till 1. 4. Om posten återfinns i INREGFO med INOMKORT=J: a. sätts fältet Avbrott till 1 b. I första kolumnen på raden sätts ett D på Nyasidan betyder detta att befintlig post tas bort 5. Kontroll av fältet Ändring i Ladok, se 3.6.2. 3.3.3.2 Borttagna poster Tabeller: BORTREGK, MERITBES och NAMN Urvalskriterier: 1. Hämta fyra olika delmängder beroende på var posten låg innan den togs bort: a. BORTREGK.URTABELL = FORTKURS
Martin Edlund 2015-06-09 SB01_kravspec 3372 b. BORTREGK.URTABELL = OMKURS c. BORTREGK.URTABELL = INREGFO d. BORTREGK.URTABELL = INREGOM 2. Ta bara med borttagna poster. BORTREGK.TYP = B. 3. Ta bara med poster för de personer som finns i beställningstabellen MERITBES och i NAMN. 4. Ta bara med poster borttagna senare än angivet datum, se 3.6.1, vilket kontrolleras mot BORTREGK.IDATUM. Ta inte med borttagna poster vid en totalhämtning. 5. Endast nyckelkolumnerna för motsvarande tabell i NyA: PNR, KURS, TERMIN och typ av registrering samt URPOST är intressanta att hämta upp från BORTREGK. TERMIN finns inte som egen kolumn utan får hämtas från URPOST, vilken är anledningen till att den läses upp. TERMIN parsas sedan fram post för post i javaprogrammet. En fiktiv kolumn CHANGE, vilken indikerar vad som ska göras med posten i NyA, sätts till D DELETE. 6. Ta bara med meriter som skall visas, se 3.6.3 SQL id="getomfortinregmeritbesdeleted" <!-- BORTTAGNA FORTSÄTTNINGS- OCH OMREGISTRERINGAR SEDAN SENASTE BEKRÄFTADE ÖVERFÖRING, FÖR SAMTLIGA DELFRÅGOR GÄLLER ATT VID EN TOTALHÄMTNING HÄMTAS INGA BORTTAGNA POSTER DEL 1. HÄMTA ALLA BORTTAGNA FORTSÄTTNINGSREGISTRERINGAR DEL 2. HÄMTA ALLA BORTTAGNA OMREGISTRERINGAR DEL 3. HÄMTA ALLA BORTTAGNA AVBROTT PÅ FORTSÄTTNINGSREGISTRERINGAR DEL 4. HÄMTA ALLA BORTTAGNA AVBROTT PÅ OMREGISTRERINGAR --> 'D' AS DBCHANGE, M.NYASEKEL TRIMM.NYAPNR AS PNR, TRIMB.KURS AS KURS, '' AS TERMIN, 'FO' AS REGTYP, '' AS AVBROTT, '' AS AVBRDAT, TRIMB.IDATUM AS IDATUM, TRIMB.ITID AS ITID, TRIMURPOST AS URPOST FROM ${LadokSchema}.BORTREGK B, ${LadokSchema}.MERITBES M WHERE B.URTABELL = 'FORTKURS' AND B.TYP = 'B' AND B.PNR = M.MERITPNR AND M.BEKRDAT!= '' AND M.BEKRDAT IS NOT NULL AND B.IDATUM >= M.BEKRDAT AND B.IDATUM >= #value# * FROM ${LadokSchema}.LOKKURS L WHERE L.KURS = B.KURS AND L.LOKKOD = 'EJMERIT'
Martin Edlund 2015-06-09 SB01_kravspec 3472 'D' AS DBCHANGE, M.NYASEKEL TRIMM.NYAPNR AS PNR, TRIMB.KURS AS KURS, '' AS TERMIN, 'OM' AS REGTYP, '' AS AVBROTT, '' AS AVBRDAT, TRIMB.IDATUM AS IDATUM, TRIMB.ITID AS ITID, TRIMURPOST AS URPOST FROM ${LadokSchema}.BORTREGK B, ${LadokSchema}.MERITBES M WHERE B.URTABELL = 'OMKURS' AND B.TYP = 'B' AND B.PNR = M.MERITPNR AND M.BEKRDAT!= '' AND M.BEKRDAT IS NOT NULL AND B.IDATUM >= M.BEKRDAT AND B.IDATUM >= #value# * FROM ${LadokSchema}.LOKKURS L WHERE L.KURS = B.KURS AND L.LOKKOD = 'EJMERIT' 'D' AS DBCHANGE, M.NYASEKEL TRIMM.NYAPNR AS PNR, TRIMI.KURS AS KURS, TRIMI.TERMIN AS TERMIN, 'FO' AS REGTYP, '1' AS AVBROTT, TRIMI.AVBRDAT AS AVBRDAT, TRIMI.IDATUM AS IDATUM, TRIMI.ITID AS ITID, '' AS URPOST FROM ${LadokSchema}.INREGFO I, ${LadokSchema}.MERITBES M WHERE I.PNR = M.MERITPNR AND I.IDATUM >= M.BEKRDAT AND I.INOMKORT = 'J' * FROM ${LadokSchema}.LOKKURS L WHERE L.KURS = I.KURS AND L.LOKKOD = 'EJMERIT'
Martin Edlund 2015-06-09 SB01_kravspec 3572 'D' AS DBCHANGE, M.NYASEKEL TRIMM.NYAPNR AS PNR, TRIMB.KURS AS KURS, '' AS TERMIN, 'FO' AS REGTYP, '' AS AVBROTT, '' AS AVBRDAT, TRIMB.IDATUM AS IDATUM, TRIMB.ITID AS ITID, TRIMURPOST AS URPOST FROM ${LadokSchema}.BORTREGK B, ${LadokSchema}.MERITBES M WHERE B.URTABELL = 'INREGFO' AND B.TYP = 'B' AND B.PNR = M.MERITPNR AND M.BEKRDAT!= '' AND M.BEKRDAT IS NOT NULL AND B.IDATUM >= M.BEKRDAT AND B.IDATUM >= #value# * FROM ${LadokSchema}.LOKKURS L WHERE L.KURS = B.KURS AND L.LOKKOD = 'EJMERIT' 'D' AS DBCHANGE, M.NYASEKEL TRIMM.NYAPNR AS PNR, TRIMB.KURS AS KURS, '' AS TERMIN, 'OM' AS REGTYP, '' AS AVBROTT, '' AS AVBRDAT, TRIMB.IDATUM AS IDATUM, TRIMB.ITID AS ITID, TRIMURPOST AS URPOST FROM ${LadokSchema}.BORTREGK B, ${LadokSchema}.MERITBES M WHERE B.URTABELL = 'INREGOM' AND B.TYP = 'B' AND B.PNR = M.MERITPNR AND M.BEKRDAT!= '' AND M.BEKRDAT IS NOT NULL AND B.IDATUM >= M.BEKRDAT AND B.IDATUM >= #value# * FROM ${LadokSchema}.LOKKURS L WHERE L.KURS = B.KURS AND L.LOKKOD = 'EJMERIT'
Martin Edlund 2015-06-09 SB01_kravspec 3672 3.3.4 Godkprov och undkprov 3.3.4.1 Nya eller ändrade poster Urvalskriterier: 1. Ta bara med poster för de personer som finns i beställningstabellen MERITBES och i NAMN. 2. Endast det senaste provet hämtas i de fall där det finns flera resultat på samma prov. 3. Ta bara med poster ändrade senare än angivet datum, se 3.6.1. 4. Ta bara med meriter som skall visas, se Fel! Hittar inte referenskälla. SQL id="getgodkprovmeritbes" <!-- HÄMTA ALLA GODKÄNDA PROV SEDAN SENASTE BEKRÄFTADE ÖVERFÖRING, HÄMTAR ÄVEN DOM PROV SOM TIDIGARE VARIT UNDERKÄNDA DÄR POST FINNS I BERTRES MED URTABELL UNDKPROV --> 'I' AS DBCHANGE, M.NYASEKEL TRIMM.NYAPNR AS PNR, TRIMG.KURS AS KURS, TRIMG.PROV AS PROV, TRIMG.BETYG AS BETYG, '1' AS GODKPROV, G.TGPOANG as TGPOANG, TRIMG.PROVDAT AS PROVDAT, TRIMG.IDATUM AS IDATUM, TRIMG.ITID AS ITID FROM ${LadokSchema}.GODKPROV G, ${LadokSchema}.MERITBES M WHERE G.PNR = M.MERITPNR AND G.IDATUM >= M.BEKRDAT * FROM ${LadokSchema}.LOKKURS L WHERE L.KURS = G.KURS AND L.LOKKOD = 'EJMERIT' SQL id="getundkprovmeritbes" <!-- HÄMTA ALLA UNDERKÄNDA PROV SEDAN SENASTE BEKRÄFTADE ÖVERFÖRING DÄR INGET AV DE UNDERKÄNDA PROVEN ÄR BORTTAGET, HÄMTAR ÄVEN DOM PROV SOM TIDIGARE VARIT GODKÄNDA DÄR POST FINNS I BERTRES MED URTABELL GODKPROV --> 'I' AS DBCHANGE, M.NYASEKEL TRIMM.NYAPNR AS PNR, TRIMU.KURS AS KURS, TRIMU.PROV AS PROV, TRIMU.BETYG AS BETYG, '0' AS GODKPROV,
Martin Edlund 2015-06-09 SB01_kravspec 3772 '' as TGPOANG, TRIMU.PROVDAT AS PROVDAT, TRIMU.IDATUM AS IDATUM, TRIMU.ITID AS ITID FROM ${LadokSchema}.UNDKPROV U, ${LadokSchema}.MERITBES M WHERE U.PNR = M.MERITPNR AND U.IDATUM >= M.BEKRDAT * FROM ${LadokSchema}.GODKPROV GK WHERE GK.PNR = U.PNR AND GK.KURS = U.KURS AND GK.PROV = U.PROV * FROM ${LadokSchema}.LOKKURS L WHERE L.KURS = U.KURS AND L.LOKKOD = 'EJMERIT' AND U.PROVDAT = TRIMMAXA.PROVDAT FROM ${LadokSchema}.UNDKPROV A WHERE A.PNR = U.PNR AND A.KURS = U.KURS AND A.PROV = U.PROV Värdetransformering: 1. Fältet Godkänt prov sätts till 1 om posten återfinns i GODKPROV och till 0 om posten återfinns i UNDKPROV. 2. Fältet Poäng sätts till blankt om TGPOANG är 0.0 översättning från null till 0.0 sker i select-satsen. 3. Kontroll av fältet Ändring i Ladok, se 3.6.2. 3.3.4.2 Borttagna provresultat där det inte finns andra resultat på samma prov Borttagna godkända eller underkända resultat och inga andra godkända/underkända resultat på provet ifråga, resulterar i borttagning av resultatposten i nya:s motsvarande tabell. Tabell: BORTRES, MERITBES och NAMN Urvalskriterier: 1. Hämta två olika delmängder beroende på var posten låg innan den togs bort: a. BORTRES.URTABELL = GODKPROV b. BORTRES.URTABELL = UNDKPROV 2. Ta bara med borttagna poster. BORTRES.TYP = B.
Martin Edlund 2015-06-09 SB01_kravspec 3872 3. Ta bara med poster för de personer som finns i beställningstabellen MERITBES och i NAMN. 4. Ta bara med poster borttagna senare än angivet datum, se 3.6.1, vilket kontrolleras mot BORTRES.IDATUM. Ta inte med borttagna poster vid en totalhämtning. 5. Det finns inget godkänt resultat på aktuellt prov m a o motsvarande post saknas i GODKPROV. 6. Det finns inget underkänt resultat på aktuellt prov m a o motsvarande post saknas i UNDKPROV. 7. Endast nyckelkolumnerna för motsvarande tabell i NyA: PNR, KURS och PROV är intressanta att fylla med data. En fiktiv kolumn CHANGE, vilken indikerar vad som ska göras med posten i NyA, sätts till D DELETE. 8. Ta bara med meriter som skall visas, se 3.6.3 SQL id="getgodkundkprovmeritbesdeleted" <!-- BORTTAGNA GODKÄNDA ELLER UNDERKÄNDA RESULTAT --> 'D' AS DBCHANGE, M.NYASEKEL TRIMM.NYAPNR AS PNR, TRIMB.KURS AS KURS, TRIMB.PROV AS PROV, '' AS BETYG, '' AS GODKPROV, '' AS TGPOANG, '' AS PROVDAT, TRIMB.IDATUM AS IDATUM, TRIMB.ITID AS ITID FROM ${LadokSchema}.BORTRES B, ${LadokSchema}.MERITBES M WHERE B.URTABELL = 'GODKPROV' OR B.URTABELL = 'UNDKPROV' AND B.TYP = 'B' AND B.PNR = M.MERITPNR AND M.BEKRDAT!= '' AND M.BEKRDAT IS NOT NULL AND B.IDATUM >= M.BEKRDAT AND B.IDATUM >= #value# * FROM ${LadokSchema}.GODKPROV G WHERE G.PNR = B.PNR AND G.KURS = B.KURS AND G.PROV = B.PROV * FROM ${LadokSchema}.UNDKPROV U WHERE U.PNR = B.PNR AND U.KURS = B.KURS
Martin Edlund 2015-06-09 SB01_kravspec 3972 AND U.PROV = B.PROV * FROM ${LadokSchema}.LOKKURS L WHERE L.KURS = B.KURS AND L.LOKKOD = 'EJMERIT' 3.3.4.3 Borttagna provresultat där det finns underkända resultat innebär ändring på posten i NyA Genomgång 2010-02-10. Hittar inte denna SQL i koden. Måste kontrollera om denna fortfarande är aktuell! Borttagna godkända eller underkända resultat och inga andra godkända men väl underkända resultat på provet ifråga, resulterar i ändring av resultatposten i NyA:s motsvarande tabell. Tabell: BORTRES, MERITBES och NAMN Urvalskriterier: 1. Hämta borttagna prov, såväl godkända som underkända: a. BORTRES.URTABELL = GODKPROV b. BORTRES.URTABELL = UNDKPROV 2. Ta bara med borttagna poster. BORTRES.TYP = B. 3. Ta bara med poster för de personer som finns i beställningstabellen MERITBES och i NAMN. 4. Ta bara med poster borttagna senare än angivet datum, se 3.6.1, vilket kontrolleras mot BORTRES.IDATUM. Ta inte med borttagna poster vid en totalhämtning. 5. Det finns inget godkänt resultat på aktuellt prov m a o motsvarande post finns inte i GODKPROV. 6. Ta bara med originalmeriter, se Fel! Hittar inte referenskälla. 7. Det finns underkänt resultat på aktuellt prov m a o motsvarande post finns i UNDKPROV. 9. Samtliga kolumner för motsvarande tabell i NyA fylls på med data: PNR, KURS, PROV, IDATUM och ITID från BORTRES. BETYG och PROVDAT hämtas från UNDKPROV där BETYG = <betyg för senast underkända prov> och PROVDAT = <provdatum för senast underkända prov>, Godkänt prov sätts till 0 och TGPOANG till null. En fiktiv kolumn CHANGE, vilken indikerar vad som ska göras med posten i NyA, sätts till I INSERT. Sql: 'I' AS CHANGE, N.SEKEL TRIMB.PNR AS PNR, TRIMB.KURS AS KURS, TRIMB.PROV AS PROV, TRIMU.BETYG AS BETYG,