Virta_Latausraportti - Tarkistukset Tällä sivulla ylläpidetään tietovarannossa tehtävien tarkistusten listaa. Tarkistusten tulos ilmenee siis Virta_Latausraportilla PUUTTEITA-listalla. Opiskelijat Opiskelijalla ei ole ollenkaan opiskeluoikeutta, lukukausi-ilmoittautumista tai opintosuoritusta Mikäli tietojen perusteella löytyy sellainen opiskelija, jonka tietoihin ei voida liittää opiskeluoikeutta, lukukausi-ilmoittautumista tai opintosuoritusta. Opiskelijalla ei ole virallista suomalaista hetua tai kansallista oppijanumeroa Mikäli tiedoista löytyy sellainen opiskelija, johon ei liity virallista suomalaista hetua tai oppijanumeroa, ilmoitetaan. Tämä tarkistus yksinään ei näy listalla, sillä luultavasti näitä puutteita löytyy aivan kaikilta. Toisin sanoen tämä puute ilmoitetaan vain, mikäli on muitakin puutteita. Opiskelijan sukupuolitieto ei täsmää hetun kanssa Katsotaan sellaiset henkilöt, joiden sukupuoli-tieto ei täsmää henkilötunnuksesta pääteltävissä olevasta sukupuolesta. Opiskeluoikeudet Opiskeluoikeuden tila ei muodosta eheää aikajaksoa Tiedoista katsotaan sellaiset opiskeluoikeudet, joihin liittyy usea tila, mutta tilojen väliin jää ajallisesti aukkoja tai ajat menevät päällekkäin. Opiskeluoikeuden opiskeluoikeusjakso ei muodosta eheää aikajaksoa Tiedoista katsotaan sellaiset opiskeluoikeudet, joihin liittyy usea opiskeluoikeusjakso, mutta jaksojen väliin jää ajallisesti aukkoja tai ajat menevät päällekkäin. Opiskeluoikeuksien ensisijaisuuksissa päällekkäisyyksiä Tiedoista katsotaan opiskelijan ensisijaisuudet (aikajakso, mutta ensijaisuuksien väliin jää ajallisesti aukkoja tai ajat menevät päällekkäin. Opiskeluoikeusjaksolta puuttuu koulutuskoodi Tutkitaan tutkintoon johtavista opiskeluoikeuksista, liittyykö niissä oleviin opiskeluoikeusjaksoihin aina koulutuskoodi. Jos ei, puute. Ensisijaisuus puuttuu tutkinto-opiskelijan opiskeluoikeuksista (YO Tutkitaan opiskelijat, joilla on tutkintoon johtava opiskeluoikeus, liittyykö opiskeluoikeuksiin ollenkaan ensisijaisuutta. Jos ei, puute. Koskee vain yliopistoja. Rajoitettu koskemaan vain kuluvana vuonna voimassaolleita opiskeluoikeuksia. Opiskelijalla on vain optio-tilassa oleva opiskeluoikeus Kyse on opiskelijasta, jolta ei löydy muita opiskeluoikeuksia kuin sellaisia, joiden tila on 2='optio'. Opiskeluoikeuden liittyvyys viittaa tietoon jota ei ole Katsotaan että ilmoitettu opiskeluoikeuden liittyvyys viittaa myös tietoon joka on olemassa.
Opiskeluoikeudella on monta myöntäjää Katsotaan onko opiskeluoikeuteen ilmoitettu organisaatio-tietoa erikseen roolilla 1='myöntävä'. Jos on, tämä aiheuttaa sen että opiskeluoikeudella on monta myöntäjää. Lukukausi-ilmoittautumiset Oppilaitoksella muiden korkeakoulujen lukukausi-ilmoittautumisia Oppilaitoksella muiden korkeakoulujen lukukausi-ilmoittautumisia. Ilmoittaa tulisi vain oman organisaation lukukausi-ilmoittautumiset. Opintosuoritukset Opintosuoritukselta puuttuu nimi Mikäli tiedoista löytyy opintosuorituksia joihin liittyen ei ole minkäänlaista nimeä, ilmoitetaan tämä puutteena. Opintosuoritukselta puuttuu arvosana Mikäli tiedoista löytyy opintosuorituksia joihin liittyen ei ole minkäänlaista arvosanaa, ilmoitetaan tämä puutteena. Opintosuoritukselta puuttuu koulutusala Mikäli tiedoista löytyy opintosuorituksia joihin liittyen ei ole lainkaan koulutusala-tietoa (koulutusala2002 tai opintoala1995, ilmoitetaan tämä puutteena. Opintosuoritukselta (laji: tutkinto puuttuu tutkintonimike/koulutuskoodi Mikäli tutkintolajiselta opintosuoritukselta puuttuu koulutuskoodi, ilmoitetaan tämä puutteena. Opintosuoritukselta puuttuu opiskeluoikeus (AMK Tarkistetaan Ammattikorkeakoulujen osalta. Opintosuoritusten yhteydessä pitää ilmoittaa opiskeluoikeus. Opintosuoritus virheellisellä sisältyvyyden avaintiedolla Mikäli XML-tiedoissa on ilmoitettu opintosuorituksen sisältyvyys, mutta sisaltyvaopintosuoritusavain-tieto ei ole sama kuin mikään varsinainen opintosuorituksen avain-tieto, ilmoitetaan tämä puutteena. Tarkistetaan vain suorituksilta, jotka on suoritettu vuonna 2006 tai sen jälkeen. Opintosuorituksella on monta myöntäjää Katsotaan onko opintosuoritukseen ilmoitettu organisaatio-tietoa erikseen roolilla 1='myöntävä'. Jos on, tämä aiheuttaa sen että opintosuorituksella on monta myöntäjää. Liikkuvuusjaksot Liikkuvuusjakson saapuvan opiskelijan koulutusaste suomalaisessa korkeakoulussa Tutkintaan löytyykö sellaista liikkuvuusjaksoa, jonka suunta on saapuva ja liikkuvuusjakson päättymispäivämäärä on menneisyydessä, jolta puuttuu koulutusaste (opiskeluoikeuden tyyppi -tieto. Liikkuvuusjakson päättymispäivä on varhaisempi kuin alkamispäivä Jos löytyy liikkuvuusjaksoja, joissa päättymispäivä on varhaisempi kuin alkamispäivä, ilmoitetaan tämä puutetietona.
Liikkuvuusjakson liikkuvuusohjelma puuttuu 87 pv tai pidemmältä jaksolta Tarkistetaan liikkuvuusjaksoista, joiden kesto on 87 päivää tai enemmän, puuttuuko liikkuvuusohjelma, ja mikäli puuttuu ja liikkuvuusjakso on alkanut 1.1.2016 tai sen jälkeen, ilmoitetaan puute. Liikkuvuusjakson liikkuvuuden tyyppi puuttuu Tarkistetaan liikkuvuusjaksoista puuttuuko liikkuvuuden tyyppi, ja mikäli puuttuu ja liikkuvuusjakso on alkanut 1.1.2016 tai sen jälkeen, ilmoitetaan puute. SQL-koodi SQL -- OPISKELIJA source select GETDATE( as pvm, '1001' as virhekoodi, 'Opiskelijalla ei ole ollenkaan opiskeluoikeutta, lukukausi-ilmoittautumista tai opintosuoritusta' as kuvaus, 'opiskelijaavain' as avainsarake, a.avain FROM Opiskelija AS a AND a.id NOT IN ( SELECT OpiskelijaID FROM Opiskeluoikeus AND a.id NOT IN ( SELECT OpiskelijaID FROM Opintosuoritus AND a.id NOT IN ( SELECT OpiskelijaID FROM Lukukausi_ilmoittautuminen select GETDATE( as pvm, '1002' as virhekoodi, 'Opiskelijalla ei ole virallista suomalaista hetua tai kansallista oppijanumeroa' as kuvaus, 'opiskelijaavain' as avainsarake, a.avain FROM Opiskelija AS a AND a.henkiloid IN ( SELECT ID FROM Henkilo WHERE Henkilotunnus IS NULL OR Henkilotunnus NOT LIKE ' % ' AND a.kansallinen_op_id IS NULL select GETDATE( as pvm, '1003' as virhekoodi, 'Opiskelijan sukupuolitieto ei täsmää hetun kanssa' as kuvaus, 'opiskelijaavain' as avainsarake, a.avain Expand
, coalesce(a.avain,'#puuttuu#' as opiskelijaavain FROM Opiskelija AS a INNER JOIN Henkilo h ON h.id=a.henkiloid where 1=1 and len(h.henkilotunnus=11 -- on hetu and h.sukupuoliid is not null -- on sp and( ( --nainen cast(substring(h.henkilotunnus,10,1 as int%2=0 and h.sukupuoliid <> (select id from Sukupuoli where Koodi='2' or ( --mies cast(substring(h.henkilotunnus,10,1 as int%2=1 and h.sukupuoliid <> (select id from Sukupuoli where Koodi='1' -- OPISKELUOIKEUS select GETDATE( as pvm, '2001' as virhekoodi, 'Opiskeluoikeuden tila ei muodosta eheää aikajaksoa' as kuvaus FROM Opiskeluoikeus AS a INNER JOIN Op_oikeuteen_liittyva_tila AS b ON b.opiskeluoikeusid=a.id -- On usea AND b.opiskeluoikeusid IN ( SELECT c.opiskeluoikeusid FROM Op_oikeuteen_liittyva_tila AS c GROUP BY c.opiskeluoikeusid HAVING COUNT(*>1 -- Ei viimeinen AND b.alkamispaivamaara < ( SELECT MAX(c.Alkamispaivamaara FROM Op_oikeuteen_liittyva_tila AS c WHERE c.opiskeluoikeusid=b.opiskeluoikeusid GROUP BY c.opiskeluoikeusid -- Ei seuraajaa -- tai Paattymispaivamaaraa ei asetettu AND( b.paattymispaivamaara NOT IN ( SELECT DATEADD(day,-1,c.Alkamispaivamaara FROM Op_oikeuteen_liittyva_tila AS c WHERE c.opiskeluoikeusid=b.opiskeluoikeusid OR b.paattymispaivamaara IS NULL select GETDATE( as pvm, '2002' as virhekoodi, 'Opiskeluoikeuden opiskeluoikeusjakso ei muodosta eheää aikajaksoa' as kuvaus
FROM Opiskeluoikeus AS a INNER JOIN Opiskeluoikeusjakso AS b ON b.opiskeluoikeusid=a.id -- On usea AND b.opiskeluoikeusid IN ( SELECT c.opiskeluoikeusid FROM Opiskeluoikeusjakso AS c GROUP BY c.opiskeluoikeusid HAVING COUNT(*>1 -- Ei viimeinen AND b.alkamispaivamaara < ( SELECT MAX(c.Alkamispaivamaara FROM Opiskeluoikeusjakso AS c WHERE c.opiskeluoikeusid=b.opiskeluoikeusid GROUP BY c.opiskeluoikeusid -- Ei seuraajaa -- tai Paattymispaivamaaraa ei asetettu AND( b.paattymispaivamaara NOT IN ( SELECT DATEADD(day,-1,c.Alkamispaivamaara FROM Opiskeluoikeusjakso AS c WHERE c.opiskeluoikeusid=b.opiskeluoikeusid OR b.paattymispaivamaara IS NULL select GETDATE( as pvm, '2003' as virhekoodi, 'Opiskeluoikeuksien ensisijaisuuksissa päällekkäisyyksiä' as kuvaus, oik1.avain+','+oik2.avain FROM Op_oikeuden_ensisijaisuus AS e1 inner join Opiskeluoikeus oik1 on oik1.id=e1.opiskeluoikeusid inner join Opiskeluoikeus oik2 on oik2.opiskelijaid=oik1.opiskelijaid inner join Op_oikeuden_ensisijaisuus e2 on e2.opiskeluoikeusid=oik2.id -- varmistetaan eri ensisijaisuus AND 1 IN ( CASE -- jos saman oikeuden,... WHEN e1.opiskeluoikeusid=e2.opiskeluoikeusid THEN --...niin eri päivän => ensisijaisuudet ovat eri CASE WHEN e1.alkamispaivamaara<>e2.alkamispaivamaara THEN 1 ELSE 0 END ELSE 1 -- eri oik => ok END -- varmistetaan päällekkäisyys, siten... AND(e1.Paattymispaivamaara BETWEEN e2.alkamispaivamaara AND e2.paattymispaivamaara OR e2.paattymispaivamaara BETWEEN e1.alkamispaivamaara AND e1.paattymispaivamaara --...että e1 sisältää aiemman päivämäärän AND(e1.Alkamispaivamaara<e2.Alkamispaivamaara OR (e1.alkamispaivamaara=e2.alkamispaivamaara AND e1.paattymispaivamaara<e2.paattymispaivamaara
OR (e1.alkamispaivamaara=e2.alkamispaivamaara AND e1.paattymispaivamaara=e2.paattymispaivamaara --bonus: ilmoitetaan oikeudet vain kerran: AND oik1.avain<=oik2.avain select GETDATE( as pvm, '2004' as virhekoodi, 'Opiskeluoikeusjaksolta puuttuu koulutuskoodi' as kuvaus from Opiskeluoikeus AS a inner join Opiskeluoikeusjakso AS b on b.opiskeluoikeusid=a.id inner join Opiskeluoikeuden_tyyppi c on c.id = a.op_oikeuden_tyyppiid where b.tutkintonimikeid is null and c.koodi in ('1', '2', '3', '4', '5', '6', '7' select GETDATE( as pvm, '2005' as virhekoodi, 'Ensisijaisuus puuttuu tutkinto-opiskelijan opiskeluoikeuksista' as kuvaus, 'opiskelijaavain' as avainsarake FROM Opiskelija AS a -- ei niiden opiskeluoikeuksien joukossa joihin liittyy ensisijaisuus AND a.id NOT IN ( select o.opiskelijaid from Opiskeluoikeus o inner join Op_oikeuden_ensisijaisuus e on e.opiskeluoikeusid=o.id -- on tutkintoon johtava opiskeluoikeus AND a.id IN ( select o.opiskelijaid from Opiskeluoikeus o inner join Opiskeluoikeuden_tyyppi k on k.id=o.op_oikeuden_tyyppiid where 1=1 -- NB! Vain yliopistot! --and k.koodi in ('1','2','3','4','5','6','7' and k.koodi in ('2','4','5','6','7' -- opiskeluoikeus ollut voimassa 1.8.2005 tai sen jälkeen --and '2005-08-01' between o.alkamispaivamaara and isnull(o.paattymispaivamaara,'9999-01-01' -- opiskeluoikeus ollut voimassa kuluvana vuonna and cast(year(getdate( as varchar+'-01-01' <= isnull(o.paattymispaivamaara,'9999-01-01' select GETDATE( as pvm, '2006' as virhekoodi, 'Opiskelijalla on vain optio-tilassa oleva opiskeluoikeus' as kuvaus, 'opiskelijaavain' as avainsarake FROM Opiskelija a -- EI niiden joukossa, joilla on muu kuin OPTIO-tilassa oleva opiskeluoikeus
AND a.id NOT IN ( select o2.opiskelijaid from Opiskeluoikeus o2 inner join Op_oikeuteen_liittyva_tila ot2 on ot2.opiskeluoikeusid=o2.id inner join Opiskeluoikeuden_tila t2 on t2.id=ot2.op_oikeuden_tilaid where t2.koodi<>'2'--optio --... mutta on OPTIO-tilassa oleva opiskeluoikeus AND a.id IN ( select o.opiskelijaid from Opiskeluoikeus o inner join Op_oikeuteen_liittyva_tila ot on ot.opiskeluoikeusid=o.id inner join Opiskeluoikeuden_tila t on t.id=ot.op_oikeuden_tilaid where t.koodi='2'--optio -- NB! Käyttää "XML_SA"-tietoja (ei yhteinen tietomalli select GETDATE( as pvm, '2007' as virhekoodi, 'Opiskeluoikeuden liittyvyys viittaa tietoon jota ei ole' as kuvaus p.id=a.opiskelijaid,'#puuttuu#' as opiskelijaavain from Opiskeluoikeus AS a inner join XML_SA.Opiskeluoikeus_Liittyvyys SA on SA.Opiskeluoikeus_Id=a.ID where SA.liittyvaOpiskeluoikeusAvain not in ( SELECT b.avain FROM Opiskeluoikeus b select GETDATE( as pvm, '2008' as virhekoodi, 'Opiskeluoikeudella on monta myöntäjää' as kuvaus p.id=a.opiskelijaid,'#puuttuu#' as opiskelijaavain from Opiskeluoikeus a inner join Op_oikeuden_organisaatio ag on ag.opiskeluoikeusid=a.id inner join Organisaation_rooli as gr on gr.id=ag.organisaation_rooliid where gr.koodi='1' --myöntävä group by a.opiskelijaid having COUNT(*>1 -- LUKUKAUSI-ILMOITTAUTUMINEN select GETDATE( as pvm, '3001' as virhekoodi, 'Oppilaitoksella muiden korkeakoulujen lukukausi-ilmoittautumisia' as kuvaus, 'opiskelijaavain # opiskseluoikeusavain' as avainsarake, substring(avain, (charindex('#',avain+1, (len(avain - (charindex('#', reverse(avain + (charindex('#',avain from Lukukausi_ilmoittautuminen a inner join Organisaatio as b on a.organisaatioid = b.id and b.koodi not in (select OrganisaatioKoodi from Yhteiset.Asetukset.Instanssit where db = 'CSC'
-- OPINTOSUORITUS select GETDATE( as pvm, '4001' as virhekoodi, 'Opintosuoritukselta puuttuu nimi' as kuvaus FROM Opintosuoritus AS a WHERE a.nimi IS NULL AND a.avain NOT IN ( select b.avain from Kieliversio b where b.ominaisuusid in ( select c.id from Ominaisuus c where c.nimi='nimi' and c.kasiteid in ( select d.id from Kasite d where d.nimi='opintosuoritus' select GETDATE( as pvm, '4002' as virhekoodi, 'Opintosuoritukselta puuttuu arvosana' as kuvaus FROM Opintosuoritus AS a WHERE a.arvosanaid IS NULL select GETDATE( as pvm, '4003' as virhekoodi, 'Opintosuoritukselta puuttuu koulutusala' as kuvaus FROM Opintosuoritus a inner join Opintosuorituksen_laji sl on sl.id=a.opintosuorituksen_lajiid WHERE a.id NOT IN ( SELECT OpintosuoritusID FROM Op_suor_koulutusala AND sl.koodi=2 -- muu opintosuoritus select GETDATE( as pvm, '4005' as virhekoodi, 'Opintosuoritukselta (laji: tutkinto puuttuu tutkintonimike/koulutuskoodi' as kuvaus FROM Opintosuoritus AS a WHERE a.tutkintonimikeid IS NULL AND a.opintosuorituksen_lajiid = ( SELECT ID FROM Opintosuorituksen_laji WHERE Koodi='1' --Tutkinto -- jos AMK: select GETDATE( as pvm
, '4006' as virhekoodi, 'Opintosuoritukselta puuttuu opiskeluoikeus' as kuvaus, a.avain from opintosuoritus a where a.opiskeluoikeusid is null -- NB! Käytetään XML_SA-taulua hyväksi (_Id =.id -- Katsotaan vain vuoden 2006 ja jälkeen suoritettuja (bologna jne. select GETDATE( as pvm, '4007' as virhekoodi, 'Opintosuoritus virheellisellä sisältyvyyden avaintiedolla' as kuvaus from Opintosuoritus AS a inner join XML_SA.Opintosuoritus_Sisaltyvyys SA on SA.Opintosuoritus_Id=a.ID where SA.sisaltyvaOpintosuoritusAvain not in ( SELECT b.avain FROM Opintosuoritus b and YEAR(a.Suorituspaivamaara >= 2006 -- NB! Käyttää "XML_SA"-tietoja (ei yhteinen tietomalli select GETDATE( as pvm, '4008' as virhekoodi, 'Opintosuorituksella on monta myöntäjää' as kuvaus p.id=a.opiskelijaid,'#puuttuu#' as opiskelijaavain from Opintosuoritus a inner join Op_suorituksen_organisaatio ag on ag.opintosuoritusid=a.id inner join Organisaation_rooli as gr on gr.id=ag.organisaation_rooliid where gr.koodi='1' --myöntävä group by a.opiskelijaid having COUNT(*>1 -- -- LIIKKUVUUSJAKSOT select GETDATE( as pvm, '5001' as virhekoodi, 'Liikkuvuusjakson saapuvan opiskelijan koulutusaste suomalaisessa korkeakoulussa' as kuvaus, 'liikkuvuusjaksoavain' as avainsarake p.id=a.opiskelijaid,'#puuttuu#' as opiskelijaavain FROM Liikkuvuusjakso AS a INNER JOIN Liikkuvuuden_suunta AS ks on ks.id=a.liikkuvuuden_suuntaid WHERE ks.koodi='2' --Saapuva AND a.opiskeluoikeuden_tyyppiid IS NULL --"koulutusaste" puuttuu AND GETDATE( > coalesce(a.paattymispaivamaara,'9999-9-9' --päättynyt menneisyydessä select GETDATE( as pvm, '5002' as virhekoodi
, 'Liikkuvuusjakson päättymispäivä on varhaisempi kuin alkamispäivä' as kuvaus, 'liikkuvuusjaksoavain' as avainsarake p.id=a.opiskelijaid,'#puuttuu#' as opiskelijaavain -- ++, a.db, a.alkamispaivamaara, a.paattymispaivamaara, DATEDIFF(day,a.alkamispaivamaara,coalesce(a.paattymispaivamaara,'9999-9-9' FROM Liikkuvuusjakso AS a AND a.paattymispaivamaara < a.alkamispaivamaara select GETDATE( as pvm, '5003' as virhekoodi, 'Liikkuvuusjakson liikkuvuusohjelma puuttuu 87 pv tai pidemmältä jaksolta' as kuvaus, 'liikkuvuusjaksoavain' as avainsarake p.id=a.opiskelijaid,'#puuttuu#' as opiskelijaavain FROM Liikkuvuusjakso AS a -- Liikkuvuusohjelma puuttuu AND a.liikkuvuusohjelmaid is null -- 87 pv tai enemmän kestänyt AND DATEDIFF(day,a.Alkamispaivamaara,coalesce(a.Paattymispaivamaara,'9999-9-9' >= 87 -- ei kuitenkaan liian varhaisia (2016 tai jälkeen *alkaneet* (vs voimassa olleet AND coalesce(a.alkamispaivamaara,'1900-1-1' >= '2016-01-01' select GETDATE( as pvm, '5004' as virhekoodi, 'Liikkuvuusjakson liikkuvuuden tyyppi puuttuu' as kuvaus, 'liikkuvuusjaksoavain' as avainsarake p.id=a.opiskelijaid,'#puuttuu#' as opiskelijaavain FROM Liikkuvuusjakso AS a -- Liikkuvuuden tyyppi puuttuu AND a.liikkuvuuden_tyyppiid is null -- ei kuitenkaan liian varhaisia (2016 tai jälkeen *alkaneet* (vs voimassa olleet
AND coalesce(a.alkamispaivamaara,'1900-1-1' >= '2016-01-01'