Kravspecifikation för överföring av katalogdata mellan Ladok och CSN 2018-02-13 Version: Beteckning: 1.05 Ändringshistorik Revision Datum Av Kommentar Granskare Godkännare 0.01 2005-02-12 Jörgen Sondell Först utkastet - - 0,02 2006-03-24 Jörgen Sondell Andra Utkastet - - 0.03 2006-03-31 Jörgen Sondell -Ändrat algoritmen för avvikande terminstider Lagt till kontroll om att terminstider sak finnas definierade Lagt till att man ska lägga till tecken som fyller ut till full postlängd. Lagt in besvarade frågor Lagt till Kontroll1 och
Lagt till hur läsningen mot registreringstabellerna ska ske på övergripande nivå 1.00 2006-04-19 Jörgen Sondell - Separerat funktionerna och gjort en egen spec av endast katalogdatadelen 1.01 2006-04-21 Jörgen Sondell - Tagit bort dominerande utbildnngsområde 1.02 2006-04-27 Jörgen Sondell - Lagt till kontroller på summeringen i slutposten 1.03 2006-06-14 Jörgen Sondell -Ändrat utseendet i mailet man får efter körning. -Ändrat filnamnet 1.04 2006-09-12 Per Lindgren - Startv o slutv 4.3.21 o 4.3.22 - Tagit bort hänvisningar till KTFORT2 under 4.3 katalogpost kurstillfällen 1.05 2011-06-21 Ulrik Sandgren Tagit bort referenser till Annan utbildning 2018-02-13 David Andersson Lagt till hantering av kurser med mer än 10 er. 1 Inledning 1.1 Bakgrund Det är bestämt sedan tidigare att alla Cobol program ska ersättas med annan teknik. Dessa batchar kommer att utvecklas med både Uniface formulär och Java. I projekt 114 skapades generella formulär (GB01) i Uniface som ska kunna användas alla batch beställningar oavsett typ av batch. Projektet kommer att utnyttja så mycket som möjligt av GB01:s funktionalitet eftersom vi kommer att köra dessa funktioner som de är. Däremot måste projektet revidera formuläret för vilka villkor som finns i respektive delfunktion. Batchen kommer att skrivas i Java. 1.2 Syfte Syftet med arbetet är att ersätta dagens UC05, UC25 och UC30 samt avveckling av manuell rutin för leverans av terminstider. 1.3 Uppdelning av funktionen Funktionen UB20 delas upp i tre delfunktioner: UB20_B Hämtning av kataloguppgifter till CSN UB20_C Hämtning av registreringsuppgifter UB20_D Hämtning av meritdata 2 Startvillkor 4.2.2 UB20 Batch program
Krav 1 Utläsning av Batchtabeller Sök i tabellen BATCHJOB om det finns någon batch som ska köras. SELECT * FROM utc.batchjob WHERE funktion = UB20_B AND datum = [dagens datum] AND tid = [server tid] Om post hittas och villkor (=J) finns måste utsökning också göras i tabellen BATVILL. SELECT r.* FROM utc.batvill r, utc.batchjob h WHERE r.anvkod = h.anvid AND r.funktion = h.funktion AND r.beteckn = h.beteckn AND r.lopnr = h.lopnr Läs villkoret i varje rad och spara undan det. Observera att: Det måste finnas minst en post i BATVILL där TERMIN=XXXXX. Finns inte post ska felmeddelande skrivas ut på fellogg och uppdatera BATCHJOB.KORDMARK med A (avbruten). Krav 2 Ändra status på beställningen När utläsning är gjord ska statusen i BATCHJOB.KORDMARK sättas till P (dvs Körning pågår) Man skall även spara undan den tid som batchen startade i en variabel. Denna sparas sedan om batchen godkänns i fältet för faktisk starttid i tabellen BATCHJOB STARTTID.BATCHJOB Krav 3 Läsning av tabeller: HSK Läs upp information för start och slutpost: SELECT * FROM utc.egenhsk (endast en post ska finnas) KOD och BENAMN är de fält som används senare PTILL Läs upp information om programtillfälle: SELECT * FROM utc.ptill WHERE termin = inskickad termin men endast program som inte är nedlagda skall tas med SELECT * FROM utc.linje WHERE nedlagd!= J Alla poster används senare för inläggning i fil. Räkna även antalet poster eftersom det ska användas i slutposten. KTILL2 Läs upp information om kurstillfälle: SELECT * FROM utc.ktill2 WHERE startter = inskickad termin Alla poster används senare för inläggning i fil. Räkna även antalet poster eftersom det ska användas i slutposten. Ta endast med kurtillfällen som har NEDLAGD.KURS!= J. KTFORT2 Läs upp information om Kurstillfälle - ng SELECT * FROM utc.ktfort2 WHERE termin = inskickad termin Alla poster används senare för inläggning i fil. Räkna även antalet poster eftersom det ska användas i slutposten. Ta endast med kurtillfällen som har NEDLAGD.KURS!= J. Krav 4 Skrivning av katalogdata till fil:
Kör Kontroll 1 4.1 Inledningspost: Inledningsposten är generell och används för alla de olika filtyperna. Det som varierar är typkoden. 4.1.1 Posten ska innehålla information om att det är en inledningspost. ( posttyp 01=startpost) 4.1.2 Därefter följer ett blankt fält. 4.1.3 Typkod. I CSN:s dokument kallas det för Bearbetningstyp och kan ha följande värden. FK=katalog, KK=extra katalog, FA=antagning (gäller inte detta projekt), FR=registrering, FM=meriter. Typkoden varierar beroende på om inledningsposten avser kataloguppgifter, registreringar eller merituppgifter. 4.1.4 Tidsmarkering ska innehålla tid och datum. Formatet skall vara ÅÅ-MM-DD-HH 4.1.5 Högskolebenämning innehåller högskolansbenämning. Hämtas från definition av den egna högskola. BENAMN.EGENHSK. Kontroll2 4.1.6 Högskolekod innehåller högskolekoden. Koden lagras i Ladok med 3 tecken, men CSN vill ha 4 positioner för högskolekod. Hämtas från definition av den egna högskola. KOD.EGENHSK. Kontroll2 4.1.7 Lägg in värdet 0 Startpost: Pos Term Def. L Beskrivning Ur. tabell Krav 1-2 Posttyp 01 2 Inledningspost - 4.1.1 3-22 Blank, Används 20-4.1.2 ej 23-24 Typkod FK 2-4.1.3 25-35 Tidmärkning 11 Markering av id i - 4.1.4 formatet ÅÅ- MM-DD-HH 36-115 Högskolebenämninbenämning 80 Högskole- EGENHSK 4.1.5 116-119 Högskolekod 4 Högskolekod EGENHSK 4.1.6 120 Värdet 0 0 1 4.1.7 4.2 Katalogpost program:
I beställningen av batchen anges vilken termin kataloguppgifterna avser. 4.2.1 Posten ska innehålla information om att det är kataloguppgifter för program. (posttyp 05=kataloguppgift program) 4.2.2 Högskolekod innehåller högskolekoden. Hämtas från definition av egna högskola. KOD.EGENHSK. 4.2.3 Termin, format 20061. Terminen väljs i beställningen och här returneras den termin som finns i anmälningsalternativet för program. TERMIN.PTILL 4.2.4 Anmälningskod innehåller programmets anmälningskod från programtillfället. Lagras med 6 tecken i Ladok fyll ut med blanka efter. ANMKOD. PTILL. 4.2.5 Anmälningskodens ursprung. Värdet LA ska användas (Kan ha värdet LA=Ladok eller VH=VHS, men det är endast Ladok som är intressant för detta projekt) 4.2.6 Ladoks programkod. Programkod för programtillfället PROGR.PTILL 4.2.7 Ladoks programbenämning i klartext. BENAMN.LINJE. 4.2.8 för programmet. (Om det är 12.0 poäng skrivs det 0120) POANG.LINJE. 4.2.9 Eventuell inriktningskod. Om programmet har inriktning anges inriktningskoden. PROGINR.PTILL 4.2.10 Inriktningsbenämning. Inriktning i klartext. BENAMN.LINJEINR. 4.2.11 för inriktningen. POANG.LINJEINR.
4.2.12 Ort där undervisning ges. Ort som anges i programtillfället. ORT.PTILL. 4.2.13 Programfart. Studietakten för programmet. PROGTAKT.PTILL. Rensa bort allt som inte är siffror (det kan av misstag kommit in tex. % eller_) (Lägg in inledande nollor om mindre än 100) 4.2.14 Lokalt begrepp. Lägg in blanka tecken här 4.2.15 Finansieringsform. Om programmet har finansieringsform anges koden. FINFORM.PTILL. 4.2.16 Stödberättigad utbildning. I Ladok anges om utbildningen berättigar till studiesstöd eller inte. Slå i tabellen ETYPBEN med FINFORM.PTILL = KOD.ETYPBEN med aktuell finanseiringsform. Om FINFORM.PTILL är blank sätt J. Om J i tabellen sätt J annars sätt N CSNBER.ETYPBEN 4.2.17 Startvecka för antagningstermin. Antagningsterminen anges i tabellen PTILL. Läs STARTV i tabellen TERMTIDP slå med PROGR, PROGINR och TERMIN från PTILL samt med TERMORDN = 1 (antagningsterminen)om post saknas läs upp serien som är satt som sytempreferens för avvikande terminstider. Slå i tabellen Systpref med RUTIN = UB20 och använd SYSTPREF.STYRINFO när man läser mot LOKKPROG. SYSTPREF.STYRINFO = SERIE.LOKPROG, använd sedan LOKKOD för att läsa i tabellen TERMTID. Läs i tabellen TERMTID med LOKKOD och aktuell termin, om träff ta STARTV från LOKPROG annars tas STARTV från tabellen TERMIN Antagningsterminen anges i tabellen PTILL. 4.2.18 Slutvecka för antagningstermin. Antagningsterminen anges i tabellen PTILL. Läs SLUTV i tabellen TERMTIDP slå med PROGR, PROGINR och TERMIN från PTILL samt med TERMORDN = 1 (antagningsterminen)om post saknas läs upp serien som är satt som sytempreferens för avvikande terminstider. Slå i tabellen Systpref med RUTIN = UB20 och använd SYSTPREF.STYRINFO när man läser mot LOKKPROG. SYSTPREF.STYRINFO = SERIE.LOKPROG, använd sedan LOKKOD för att läsa i tabellen TERMTID. Läs i tabellen TERMTID med LOKKOD och aktuell termin, om träff ta SLUTVV från LOKPROG annars tas SLUTV från tabellen TERMIN Antagningsterminen anges i tabellen PTILL. Katalogposter för programtillfället: Källa PTILL: Pos Term Defalt Längd Beskrivning Ur. tabell Krav 1-2 Posttyp 05 2 tkn Katalogpost för - 4.2.1 programtillfälle 3-6 Högskola 4 tkn Ex: EGENHSK 4.2.2 MH,LU,VXU 7-11 Termin 5 tkn Ex: 20031 PTILL 4.2.3 12-19 Anmälningskod 8 tkn PTILL 4.2.4
Pos Term Defalt Längd Beskrivning Ur. tabell Krav 20-21 Anmälningskod Ursprung LA 2 tkn Alltid LA=Ladok 4.2.5 22-26 Programkod 5 tkn PTILL 4.2.6 27-86 Programbenämning 60 tkn LINJE 4.2.7 87-90 Poäng program 4tkn (999V9) LINJE 4.2.8 91-94 Ev. inriktningskod 4 tkn PTILL 4.2.9 95-154 Inriktningsbenämnin 60 tkn LINJEINR 4.2.10 155-158 4 tkn för inriktning, LINJEINR 4.2.11 159-162 format 999V9 Ortskod 4 tkn Ort där undervisning sker, ej säkert numerisk PTILL 4.2.12 163 - Programfart 3 tkn Format 999, med PTILL 4.2.13 165 inledande nollor 166 Lokalt begrepp 7 tkn 4.2.14 172 173 Finansieringsform 3 tkn PTILL 4.2.15 175 176 Stödberättigad 1 tkn ETYPBEN 4.2.16 utbildning 177-182 Startvecka antagningstermin 6 tkn Format ÅÅÅÅVV TERMTIDP/TER MTID/TERMIN 4.2.17 183-188 Slutvecka antagningstermin 6 tkn Format ÅÅÅÅVV TERMTIDP/TER MTID/TERMIN 4.2.18 4.3 Katalogpost kurstillfällen: I beställningen av batchen anges vilken termin kataloguppgifterna avser. Man börjar med att läsa upp posterna som finns i KTILL2 och lägga in data från den tabellen i filen därefter läser och skriver man data från KTFORT2. Det måste finnas en motsvarande post för startterminen i KTILL2. Man läser då upp poster där STARTTER = inskickad termin och NEDLAGD.KURS!= J 4.3.1 Posten ska innehålla information om att det avser kataloguppgifter för kurstillfällen. (posttyp 06=kataloguppgift kurs) 4.3.2 Högskolekod innehåller högskolekoden. Koden lagras i Ladok med 3 tecken, men CSN vill ha 4 positioner för högskolekod. Hämtas från definition av egna högskola. KOD.EGENHSK. 4.3.3 Termin, format 20061. Terminen väljs i beställningen och här returneras den starttermin som finns i anmälningsalternativet för kursen. STARTTER.KTILL2
4.3.4 Anmälningskod innehåller anmälningskoden för kurstillfället. Lagras med 5 tecken i Ladok. CSN vill 8 tecken. KOD.KTILL2 4.3.5 Anmälningskodens ursprung. Värdet LA ska användas (Kan ha värdet LA=Ladok eller VH=VHS, men det är endast Ladok som är intressant för detta projekt) 4.3.6 Ladoks kurskod. Den kurskod som kopplas till kurstillfället. KURSKOD.KTILL2 4.3.7 Kursbenämning. Ladoks kursbenämning i klartext. BENAMNS.KURS. Om den är lägre än 58 tecken läggs bara de 58 första tecknen in. 4.3.8 Kursens poängomfattning. POANG.KURS. 4.3.9 Poäng denna termin. Det antal poäng som ges kursens starttermin (poäng för FFG-registrering). Antalet poäng för FFG-registrering och FO-registrering anges i kurstillfället. FFGPOANG.KTILL2. 4.3.10 Kurstakt. Kod för kurstillfällets kurstakt. KURSTAKT.KTILL2. Rensa bort allt som inte är siffror (det kan av misstag kommit in tex. % eller_) Fyll på med inledande 0:or 4.3.11 Kurstid. Kod för kurstillfällets kurstid. KURSTID.KTILL2. 4.3.12 Undervisningform. Kod för kurstillfällets undervisningsform. UNDFORM.KTILL2. 4.3.13 Kursort. Ort där undervisningen sker. ORT.KTILL2. 4.3.14 Kursomgång. Den omgång på startterminen som kursen ges. Anges i kurstillfället. KURSOMG.KTILL2. 4.3.15 Lokalt begrepp. Här framgår inte vad posten innehåller. 4.3.16 Termin för ng. Om kursen går över fler terminer så ska en ng göras för var och en av terminerna. Den eller de terminer som kursen har ng anges i tabellen KTFORT2. Det kan finnas flera terminer i tabellen för ett kurstillfälle och de skiljs åt via termin i ordning (inom kursen). TERMIN.KTFORT2 4.3.17 Terminspoäng för ng. Det antal poäng som avser kursens ng den aktuella terminen. FORPOANG.KTFORT2
4.3.18 Termin för ng och terminspoäng upprepas vid behov upp till 9 gånger. Se 4.3.16 och 4.3.17 Gå igenom alla poster som finns på det aktuella kurstillfället och titta på TERMORDN.KTFORT2 den anger vilken termin i ordningen som avses. Eftersom KTFORT2-tabellen har utrymme för 99 er och CSN endast kan ta emot 10 (se överföringsformatet under 4.3.22) görs en trunkering av datat från KTFORT2. Detta innebär att endast de 10 första (sorterat på KTFORT2.TERMIN) erna kommer med i resultatfilen. Om sådan trunkering inträffar skrivs även ett varningsmeddelande ut i mailet till användaren som beskriver vilken kurs som påverkats och hur många poster som trunkerats. 4.3.19 Finansieringsform. Om kursen är märkt med finansieringsform anges koden. KURSTYP.KTILL2 4.3.20 Stödberättigad utbildning. I Ladok anges om utbildningen berättigar till studiestöd eller inte. Detta knyts till finansieringsform. CSNBER.ETYPBEN 4.3.21 Startvecka för antagningstermin. Start och slutvecka för undervisning på terminen anges vid definition av terminstider. 1. I första hand från STARTV.KTILL2, finns inget här se p2. 2. Läs i tabellen SYSTPREF för att hämta STYRINFO.SYSTPREF. Nyckel = UB20_B. Använd värdet i STYRINFO för att läsa LOKKURS. LOKKURS.KURS = aktuell kurs, SERIE.LOKKURS = STYRINFO.SYSTPREF. Använd LOKKOD.LOKKURS + aktuell termin för att läsa TERMTID. Hämta STARTV här. Misslyckas p2 se p3. 3. Hämta STARTV i STARTV.TERMIN. Misslyckas detta så lägg blankt i STARTV, Skriv en notis i körloggen om detta. 4.3.22 Slutvecka för antagningstermin. Start och slutvecka för undervisning på terminen anges vid definition av terminstider. 1. I första hand från SLUTV.KTILL2, finns inget här se p2. 2. Läs i tabellen SYSTPREF för att hämta STYRINFO.SYSTPREF. Nyckel = UB20_B. Använd värdet i STYRINFO för att läsa LOKKURS. LOKKURS.KURS = aktuell kurs, SERIE.LOKKURS = STYRINFO.SYSTPREF. Använd LOKKOD.LOKKURS + aktuell termin för att läsa TERMTID. Hämta SLUTV här. Misslyckas p2 se p3. 3. Hämta SLUTV i STARTV.TERMIN. Misslyckas detta så lägg blankt i SLUTV. Skriv en notis i körloggen om detta. Slutet på posten skiljer sig åt mellan Kataloguppgifterna för kurstillfället vad gäller UC05, UC25 och CSN:s dokumentation. Se mer under frågor. Katalogpost för kurstillfälle Källa: KTILL2 och KTFORT2 Pos Term Default Längd Beskrivning Ur. tabell Krav 1-2 Posttyp 06 2 tkn 06=kurstilfälle - 4.3.1 3-6 Högskolekod 4 tkn EGENHSK 4.3.2 7-11 Termin 5 tkn Format KTILL2 4.3.3
20042=HT04, 20051=HV06 12-19 Anmälningskod 8 tkn KTILL2 4.3.4 20-21 Anmälningskod ursprung LA 2 tkn 4.3.5 22-27 Kurskod 6 tkn Ladoks KTILL2 4.3.6 kurskod 28-85 Kursbenämning 58 tkn Ladoks KURS 4.3.7 kursbenämnin g 86-89 4 tkn Poängomfattni KURS 4.3.8 ng för kurs, format 999V9 90-92 Poäng denna 3 tkn Format 99V9 KTILL2 4.3.9 termin 93-95 Kurstakt 3 tkn Format 999 KTILL2 4.3.10 96-98 Kurstid 3 tkn KTILL2 4.3.11 99 Undervisnings- 3 tkn KTILL2 4.3.12 101 form 102 Ortskod 4 tkn Ort där KTILL2 4.3.13 105 undervisning sker, ej säkert numerisk 106 Kursomgång 1 tkn Siffra KTILL2 4.3.14 107 113 114 118 119 121 122 126 127 129 130 134 135 137 138 142 143 145 146 150 Lokalt begrepp 7 tkn Lägg blanktecken 1 1 2 2 3 3 4 4 5 4.3.15 5 tkn Termin 1 för KTFORT2 4.3.16 3 tkn Format 99V9 KTFORT2 4.3.17 5 tkn Termin 2 för KTFORT2 4.3.18 5 tkn Termin 3 för KTFORT2 4.3. 18 5 tkn Termin 4 för KTFORT2.3. 18 5 tkn Termin 5 för KTFORT2 4.3. 18
151 153 154 158 159 161 162 166 167 169 170 174 175 177 178 182 183 185 186 190 191 193 5 6 6 7 7 8 8 9 9 10 10 Finansieringsfor m 194 196 197 Stödberättigad utbildning 198 Startvecka 203 antagnings- 204 209 termin Slutvecka antagningstermin 5 tkn Termin 6 för KTFORT2 4.3. 18 5 tkn Termin 7 för KTFORT2 4.3. 18 5 tkn Termin 8 för KTFORT2 4.3. 18 5 tkn Termin 9 för KTFORT2 4.3. 18 5 tkn Termin 10 för KTFORT2 4.3.18 3 tkn Format 99V9 KTFORT2 4.3.18 3 tkn 4.3.19 1 tkn ETYPBEN 4.3.20 6 tkn Format ÅÅÅÅVV 6 tkn Format ÅÅÅÅVV TERMIN 4.3.21 TERMIN 4.3.22 OBS! Pos. 114 194 kan vara blank, beroende på om det finns er och hur många det finns. KTFORT2 kan innehålla mer än 10 terminer vilket innebär att trunkering av data från KTFORT2 kan inträffa. 4.5 Slutpost: Slutsposten är generell och används för alla de olika filtyperna. Det som varierar är typkoden.
4.5.1 Posten ska innehålla information om att det är en slutpost. ( posttyp 99=slutpost) 4.5.2 Därefter följer ett blankt fält. 4.5.3 Typkod. I CSN:s dokument kallas det för Bearbetningstyp och kan ha följande värden. FK=katalog, KK=extra katalog, FA=antagning (gäller inte detta projekt), FR=registrering, FM=meriter. Typkoden varierar beroende på om inledningsposten avser kataloguppgifter, registreringar eller merituppgifter. Skall här vara FK. 4.5.4 Tidsmarkering ska innehålla tid och datum. Där skiljer sig formatet mellan Ladoks tekniska programdokumentation och CSN:s Rutin mellan CSN och högskolor som använder Ladok. 4.5.5 Högskolebenämning innehåller högskolansbenämning. Hämtas från definition av den egna högskola. BENAMN.EGENHSK. 4.5.6 Totala antalet poster av programtillfällen Kontroll 3 4.5.7 Totala antalet poster av kurstillfällen Kontroll 3 4.5.8 Används inte längre Slutpost: Pos Term Default Längd Beskrivning Ur.Tabell Krav 1-2 Posttyp 99 2 tkn 99=slutpost 4.5.1 3-22 Filler 20 tkn Blankt, används ej 4.5.2 23-24 Bearbetningstyp FK 2 tkn FK=katalog 4.5.3 25-35 Timestamp 11 tkn Datum och 4.5.4 klockslag ÅÅ-MM-DD-HH 36-115 Högskolebenämning 80 tkn Levererande EGENHSK 4.5.5 högskola 116-122 Summa 7 tkn Antal poster typ 4.5.6 05 123-129 Summa 7 tkn Antal poster typ 4.5.7 06 130-136 Summa 7 tkn Antal poster typ 15 4.5.8 Krav 5 Filen som sparas ner på servern ska heta UB20_B_CSN_ högskoleförkortning _ datum och tid Krav 6 Mailet som man får efter avslutad körning skall innehålla följande info: --------------------------------------------- Körningen påbörjades Datum och tid och avslutades Datum och tid
Beställning gjord på termin: XXXX Antal programtillfällen: 56 Antal kurstillfällen: 98 Körningsresultat: KLAR eller AVBRUTEN --------------------------------------------- Om körningen går fel (AVBRUTEN)skickas relevant felinformation med i mailet istället för de nedanstående uppgifterna. Beställning gjord på termin: XXXX Antal programtillfällen: 56 Antal kurstillfällen: 98 Kontroller: Kontroll 1 Börja med att kontrollera om start och slutvecka finns definierad i TERMIN, avbryt körningen och lämna meddelande om att dessa saknas i tabellen TERMIN. Finns start och slutvecka kan dessa sparas undan för att användas senare Fyll ut fältet med blanka efter om antalet tecken inte fyller hela innehållet. Kontroll 3 Lägg inledande nollor på fältet om det inte fylls ut av innnehållet. Kontroll 4 Fyll ut fältet med 0:or efter om antalet tecken inte fyller hela innehållet.