Compare commits

..

18 Commits

Author SHA1 Message Date
Daniel Quathamer 96427ee3b7 Einzelprüfungen und SPO-Knoten aus CO laden #27 3 weeks ago
Daniel Quathamer 4d45b63f2c Bugfix Studierende ohne Primärflag, HZB-Orte bei Bewerbungen #24 3 weeks ago
Daniel Quathamer 3a50526d9c Bewerbungen Status Einschreibung nicht aus EVS #26 3 months ago
Daniel Quathamer 195fb64c0a MSG Ermittlung bei TSG Prüfungen #25 9 months ago
Daniel Quathamer 1252e594bf Bugfix Abmeldungsart person_flag auswerten, Studiengang Sortierung bei MA nach BA MSG (Primärflag) #25 1 year ago
Daniel Quathamer 88f8d1bda2 Bugfix Filter Fach/Abschluss #25 1 year ago
Daniel Quathamer 281affe445 Ausblenden obsoleter Felder #25 1 year ago
Daniel Quathamer a2c4bc62c4 Redesign Spalten TSG/MSG Absolv. #25 1 year ago
Daniel Quathamer c694ff7c50 Abschlussprüfungen Redesign TSG/MSG Spalten #25 1 year ago
Daniel Quathamer aab774177c Neues Feld note_msg #22 1 year ago
Daniel Quathamer e7df3d1319 TSAB und MSG Pstatus auswerten, Bewerbungen fürs MWK BaWue #24 1 year ago
Daniel Quathamer fe0204b28d px_leistungen_v.marikelnummer integer, Bewerbungen laden #22 1 year ago
Daniel Quathamer b5e52e13e5 SPOV-Version bei Prüfungen, Version auf 0.7 hochgesetzt #22 1 year ago
Daniel Quathamer 34c626a5ad Bugfix Übernahme SPO-Version von COSTAGE zu SOS #18 2 years ago
Daniel Quathamer e13da265be px_leistungen_v statt sx_leistungen_v laden #22 2 years ago
Daniel Quathamer 6ad01f9cf5 Merge branch 'bew_mzb' #24 2 years ago
Daniel Quathamer 7440ee0d75 Neues Feld costage_st_studien_aggr.st_studium_nr_msg #16 2 years ago
Daniel Quathamer a93bb1d706 Enladen klin. Semester, Umgang mit gleichzeitigen Statusänderungen #23 2 years ago
  1. 313
      src-modules/module/costage/conf/costage.xml
  2. 12
      src-modules/module/costage/datentabellen/trans_costage_st_studierendenstammdaten.sql
  3. 81
      src-modules/module/costage/gang_costage_unload.xml
  4. 85
      src-modules/module/costage/hilfstabellen/costage_bw_antr_aggr_fuellen.sql
  5. 8
      src-modules/module/costage/hilfstabellen/costage_st_einzpruef_aggr_fuellen.sql
  6. 463
      src-modules/module/costage/hilfstabellen/costage_st_pruef_aggr_fuellen.sql
  7. 495
      src-modules/module/costage/hilfstabellen/costage_st_studien_aggr_fuellen.sql
  8. 1399
      src-modules/module/costage/hilfstabellen/costage_st_studien_aggr_fuellen_mit_primerflag.sql
  9. 1093
      src-modules/module/costage/hilfstabellen/costage_st_studien_aggr_fuellen_ohne_primerflag.sql
  10. 6
      src-modules/module/costage/masken/43040_maskeninfo.unl
  11. 130
      src-modules/module/costage/masken/43080_maskeninfo.unl
  12. 4
      src-modules/module/costage/rohdaten/COSTAGE_ENV.sam
  13. 82
      src-modules/module/costage/rohdaten/costage_unload.xml
  14. 2
      src-modules/module/costage/rohdaten/db-co.properties.sam
  15. 128
      src-modules/module/costage/rohdaten_msg/msg_costage_unload.x
  16. 82
      src-modules/module/costage/rohdaten_msg/msg_costage_unload.xml
  17. 1
      src-modules/module/costage/rohdaten_msg/superx.datum
  18. 194
      src-modules/module/costage/rohdaten_sos/sos_costage_unload.xml
  19. 51
      src-modules/module/costage/rohdaten_zul/zul_costage_unload.xml
  20. 122
      src-modules/module/costage/schluesseltabellen/costage_dim_studiengang_fuellen.sql
  21. 25
      src-modules/module/costage/schluesseltabellen/konstanten_fuellen.sql
  22. 4
      src-modules/module/costage/schluesseltabellen/sx_repository.unl
  23. 53
      src-modules/module/costage/schluesseltabellen/trans_costage_st_studienkennzahlen.sql
  24. 8
      src-modules/module/costage/upgrade/costage_pre_upgrade_pg.sql
  25. 22
      src-modules/module/costage/upgrade/costage_upgrade_man.sql

313
src-modules/module/costage/conf/costage.xml

@ -1,5 +1,5 @@ @@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<module name="costage" version="0.6b" sachgebiet_id="310"
<module name="costage" version="0.8b" sachgebiet_id="310"
sachgebiet="CO Basisdaten" systeminfo_id="310"
system="CO Basisdaten" thema="CO Basisdaten" thema_parent="Studierende, Prüfungen">
<database name="superx" system="superx">
@ -197,8 +197,9 @@ rightname="CS_BIA_STANDARDREPORTS_ADMIN[CO]" /> @@ -197,8 +197,9 @@ rightname="CS_BIA_STANDARDREPORTS_ADMIN[CO]" />
<column name="semester_id" type ="VARCHAR" size ="3" default ="" notnull ="true" />
<column name="semester_anfang" type ="DATETIME" size ="7" default ="" notnull ="true" />
<column name="semester_ende" type ="DATETIME" size ="7" default ="" notnull ="true" />
<column name="semester_bezeichnung" type ="VARCHAR" size ="22" default ="" notnull ="true" />
<column name="studienjahr" type ="VARCHAR" size ="20" default ="" notnull ="true" />
<column name="semester_bezeichnung" type ="VARCHAR" size ="255" default ="" notnull ="false" />
<column name="semester_bezeichnung_en" type ="VARCHAR" size ="255" default ="" notnull ="false" />
<column name="studienjahr" type ="VARCHAR" size ="20" default ="" notnull ="false" />
</columns>
<indexes></indexes>
<primaryKeys><rs>
@ -272,7 +273,8 @@ rightname="CS_BIA_STANDARDREPORTS_ADMIN[CO]" /> @@ -272,7 +273,8 @@ rightname="CS_BIA_STANDARDREPORTS_ADMIN[CO]" />
<table name="costage_st_studiengaenge" thema="Studierende und Gebühren" caption="Studiengänge (CO)" typ="Schlüsseltabelle" releaseUnload="empty">
<description>Studiengänge (CO)</description>
<columns><column name="st_studiengang_nr" type ="INTEGER" size ="8" default ="" notnull ="true" />
<columns>
<column name="st_studiengang_nr" type ="INTEGER" size ="8" default ="" notnull ="true" description="Studiengangnr. CO" />
<column name="studiengangs_identifikator" type ="VARCHAR" size ="4000" default ="" notnull ="false" description="" />
<column name="studiengangs_bezeichnung" type ="VARCHAR" size ="4000" default ="" notnull ="false" description="" />
<column name="st_absz_nr" type ="INTEGER" size ="8" default ="" notnull ="true" description="" currentlyUsed="false"/>
@ -302,7 +304,9 @@ rightname="CS_BIA_STANDARDREPORTS_ADMIN[CO]" /> @@ -302,7 +304,9 @@ rightname="CS_BIA_STANDARDREPORTS_ADMIN[CO]" />
</table>
<table name="costage_dim_studiengang" thema="Studierende und Gebühren" caption="Studiengänge (CO)" typ="Schlüsseltabelle" releaseUnload="empty">
<columns><column name="st_studiengang_nr" type ="INTEGER" size ="10" default ="" notnull ="false" description="Studiengang Laufnr."/>
<columns>
<column name="tid" type ="SERIAL" size ="8" default ="" notnull ="true" description="Laufnummer"/>
<column name="st_studiengang_nr" type ="INTEGER" size ="10" default ="" notnull ="false" description="Studiengang Laufnr."/>
<column name="studiengangs_identifikator" type ="VARCHAR" size ="255" default ="" notnull ="false" description="Studiengang ID"/>
<column name="studiengangs_bezeichnung" type ="VARCHAR" size ="255" default ="" notnull ="false" description="Studiengang Name"/>
<column name="st_absz_nr" type ="INTEGER" size ="10" default ="" notnull ="false" description="Abschlussziel Laufnr."/>
@ -315,7 +319,7 @@ rightname="CS_BIA_STANDARDREPORTS_ADMIN[CO]" /> @@ -315,7 +319,7 @@ rightname="CS_BIA_STANDARDREPORTS_ADMIN[CO]" />
<column name="studientyp_kb" type ="VARCHAR" size ="10" default ="" notnull ="false" description="Studientyp KB"/>
<column name="stp_stp_nr" type ="INTEGER" size ="10" default ="" notnull ="false" description="" currentlyUsed="false"/>
<column name="stuart" type ="CHAR" size ="10" default ="" notnull ="false" description="" currentlyUsed="false"/>
<column name="stufrm" type ="CHAR" size ="10" default ="" notnull ="false" description="Studienform" />
<column name="stufrm" type ="CHAR" size ="10" default ="" notnull ="false" description="Studienform" currentlyUsed="false"/>
<column name="pversion" type ="VARCHAR" size ="255" default ="" notnull ="false" description="P-Version" currentlyUsed="false"/>
<column name="rsz" type ="INTEGER" size ="10" default ="" notnull ="false" description="Regelstudienzeit" currentlyUsed="false"/>
<column name="skz_key" type ="CHAR" size ="10" default ="" notnull ="false" description="Studienfach (CO) Schlüssel" />
@ -331,6 +335,14 @@ rightname="CS_BIA_STANDARDREPORTS_ADMIN[CO]" /> @@ -331,6 +335,14 @@ rightname="CS_BIA_STANDARDREPORTS_ADMIN[CO]" />
</columns>
<indexes></indexes>
<primaryKeys><rs>
<row>
<fld name='table_cat'></fld>
<fld name='table_schem'>public</fld>
<fld name='table_name'>costage_dim_studiengang</fld>
<fld name='column_name'>tid</fld>
<fld name='key_seq'>1</fld>
<fld name='pk_name'>costage_dim_studiengang_pkey</fld>
</row>
</rs></primaryKeys>
<foreignKeys></foreignKeys>
<importedKeys></importedKeys>
@ -416,7 +428,13 @@ rightname="CS_BIA_STANDARDREPORTS_ADMIN[CO]" /> @@ -416,7 +428,13 @@ rightname="CS_BIA_STANDARDREPORTS_ADMIN[CO]" />
<column name="po_gueltig_bis" type ="DATETIME" size ="7" default ="" notnull ="false" />
<column name="po_studierbar_bis" type ="DATETIME" size ="7" default ="" notnull ="false" />
</columns>
<indexes></indexes>
<indexes>
<index name="ix_costage_st_studien_spoversionen1" unique="false">
<index-column name="st_studium_nr"/>
<index-column name="gueltig_ab"/>
</index>
</indexes>
<primaryKeys><rs>
</rs></primaryKeys>
<foreignKeys><rs>
@ -475,15 +493,14 @@ rightname="CS_BIA_STANDARDREPORTS_ADMIN[CO]" /> @@ -475,15 +493,14 @@ rightname="CS_BIA_STANDARDREPORTS_ADMIN[CO]" />
<column name="geburt_st_land_nr" type ="INTEGER" size ="8" default ="" notnull ="false" currentlyUsed="false"/>
<column name="personentyp_name" type ="VARCHAR" size ="100" default ="" notnull ="false" />
<column name="personentyp_kb" type ="VARCHAR" size ="10" default ="" notnull ="false" />
<column name="aufnahmedatum" type ="DATETIME" size ="7" default ="" notnull ="false" />
<column name="abmeldungsdatum" type ="DATETIME" size ="7" default ="" notnull ="false" />
<column name="aufnahmedatum" type ="DATETIME" size ="7" default ="" notnull ="false" description="Aufnahmedatum" ><comment>an der eigenen Hochschule</comment></column>
<column name="abmeldungsdatum" type ="DATETIME" size ="7" default ="" notnull ="false" description="Exmatrikulationsdatum" />
<column name="geschlecht" type ="INTEGER" size ="1" default ="" notnull ="false" description="Geschlecht" />
<column name="d_geburt" type ="DATE" size ="4" default ="" notnull ="false" description="Geburtsdatum"/>
<column name="ca12_staat" type ="INTEGER" size ="8" default ="" notnull ="false" description="Staatsangehörigkeit (erste)" />
<column name="second_nationality" type ="INTEGER" size ="4" default ="" notnull ="false" description="Amtl. Schluessel fuer zweite Staatsangehoerigkeit" currentlyUsed="false"/>
<column name="d_exmatr" type ="DATE" size ="4" default ="" notnull ="false" description="Datum der Exmatr. (obsolet)"/>
<column name="semester_max" type ="INTEGER" size ="4" default ="" notnull ="false" description="Letztes eingeschriebenes Semester" currentlyUsed=""/>
<column name="abm_art_p" type ="CHAR" size ="10" default ="" notnull ="false" description="Art Abmeldung (personbezogen)" >
<column name="abm_art_p" type ="CHAR" size ="10" default ="" notnull ="false" description="Exmatrikulationsgrund" >
<sourcefield table="costage_st_personen_abmeldungen" name="st_abm_art_kurzbezeichnung" sourcesystem="co" />
<comment>Lookup via: st_sem_nr - costage_st_personen_abmeldungen.st_studstamm_nr/st_sem_nr - costage_st_semester.semester_tid / costage_st_personen_abmeldungen.person_flag='J'</comment>
</column>
@ -521,40 +538,10 @@ rightname="CS_BIA_STANDARDREPORTS_ADMIN[CO]" /> @@ -521,40 +538,10 @@ rightname="CS_BIA_STANDARDREPORTS_ADMIN[CO]" />
<table name="costage_st_studien_aggr" thema="Studierende und Gebühren" caption="Studienverläufe (CO)" typ="Hilfstabelle" releaseUnload="empty">
<columns><column name="st_studium_nr" type ="INTEGER" size ="8" default ="" notnull ="true" description="Studium (ID)" />
<columns><!--Studierendendaten-->
<column name="st_studstamm_nr" type ="INTEGER" size ="8" default ="" notnull ="true" description="Studierendenstammdaten (ID)" />
<column name="matrikelnummer" type ="INTEGER" size ="8" default ="" notnull ="false" description="Matrikelnummer" />
<column name="st_studiengang_nr" type ="INTEGER" size ="8" default ="" notnull ="false" description="Studiengang (ID)" />
<column name="st_studiengang_nr_msg" type ="INTEGER" size ="8" default ="" notnull ="false" description="Studiengang (ID) des MSG" ><comment>nur bei TSG</comment></column>
<column name="st_studienstatus_nr" type ="INTEGER" size ="8" default ="" notnull ="false" description="Studienstatus (ID)" />
<column name="statustyp" type ="CHAR" size ="10" default ="" notnull ="false" description="Studienstatus"><comment>ESG oder, bei TSG, der Status des MSG</comment></column>
<column name="statustyp_tsg" type ="CHAR" size ="10" default ="" notnull ="false" description="Studienstatus TSG" />
<column name="tsg_generated" type ="SMALLINT" size ="2" default ="0" notnull ="false" description="Automatisch generierter Datensatz" ><comment>Wenn TSG vor MSG beendet wird, werden TSG-Sätze generiert</comment></column>
<column name="hrst" type ="CHAR" size ="10" default ="" notnull ="false" description="Hörerstatus" />
<column name="semester" type ="INTEGER" size ="8" default ="" notnull ="true" description="Semester" />
<column name="fachsemester" type ="INTEGER" size ="4" default ="" notnull ="false" description="Fachsemester" />
<column name="hssem" type ="INTEGER" size ="4" default ="" notnull ="false" description="Hochschulsemester" />
<column name="primaerflag" type ="SMALLINT" size ="2" default ="" notnull ="false" description="Primärfach" />
<column name="studiengang_nr" type ="INTEGER" size ="8" default ="" notnull ="false" description="Studiengang (Nr.)" />
<column name="fach_nr" type ="INTEGER" size ="8" default ="" notnull ="false" description="Fach (Nr.)" />
<column name="unikey" type ="CHAR" size ="10" default ="" notnull ="false" description="Hochschulnummer" />
<column name="anfdat" type ="DATE" size ="4" default ="" notnull ="false" description="Beginndatum"/>
<column name="ruebeudat" type ="DATE" size ="4" default ="" notnull ="false" description="Rückmeldedatum"/>
<column name="endedat" type ="DATE" size ="4" default ="" notnull ="false" description="Datum der Exmatr."/>
<column name="stufrm" type ="CHAR" size ="10" default ="" notnull ="false" description="Studienform"/>
<column name="kz_rueck_beur_ein" type ="SMALLINT" size ="2" default ="" notnull ="false" description="Rückmeldestatus (amtlich)" />
<column name="abm_art_p" type ="CHAR" size ="10" default ="" notnull ="false" description="Art Abmeldung (personbezogen)" >
<sourcefield table="costage_st_personen_abmeldungen" name="st_abm_art_kurzbezeichnung" sourcesystem="co" />
<comment>Lookup via: st_studium_nr/st_sem_nr - costage_st_personen_abmeldungen.st_studium_nr/st_sem_nr - costage_st_semester.semester_tid / costage_st_abmeldungsarten.bezug='P'</comment>
</column>
<column name="abm_art_s" type ="CHAR" size ="10" default ="" notnull ="false" description="Art Abmeldung (studienbezogen)" >
<sourcefield table="costage_st_personen_abmeldungen" name="st_abm_art_kurzbezeichnung" sourcesystem="co" />
<comment>Lookup via: st_studium_nr/st_sem_nr - costage_st_personen_abmeldungen.st_studium_nr/st_sem_nr - costage_st_semester.semester_tid / costage_st_abmeldungsarten.bezug='S'</comment>
</column>
<column name="urlaub_art" type ="INTEGER" size ="10" default ="" notnull ="false" description="Art der Beurlaubung (amtlich)" >
<sourcefield table="costage_st_urlaube" name="st_urlaub_typ_nr" sourcesystem="co" />
<comment>Lookup via: st_studium_nr/st_sem_nr - costage_st_urlaube.st_studium_nr/st_sem_nr </comment>
</column>
<column name="adresse_ort_s" type ="VARCHAR" size ="255" default ="" notnull ="false" description="Wohnsitz Landkreis (Studienadresse)" >
<sourcefield table="costage_st_adressen" name="land_kfz_kennzeichen_subregion" sourcesystem="co" />
<comment>Lookup via: st_studstamm_nr - costage_st_adressen.st_studstamm_nr - costage_st_adressen.st_adresse_typ='S' </comment>
@ -571,38 +558,86 @@ rightname="CS_BIA_STANDARDREPORTS_ADMIN[CO]" /> @@ -571,38 +558,86 @@ rightname="CS_BIA_STANDARDREPORTS_ADMIN[CO]" />
<sourcefield table="costage_st_adressen" name="st_land_nr" sourcesystem="co" />
<comment>Lookup via: st_studstamm_nr - costage_st_adressen.st_studstamm_nr -costage_st_adressen.st_adresse_typ='H' </comment>
</column>
<column name="po_stp_stp_version_kb" type ="CHAR" size ="10" default ="" notnull ="false" description="SPO-Version" >
<sourcefield table="costage_st_studien_spoversionen" name="po_stp_stp_version_kb" sourcesystem="co" />
<comment>Lookup via: st_studium_nr - costage_st_studien_spoversionen.st_studium_nr, hierbei die jeweils letzte (max(gueltig_ab) </comment>
</column>
<column name="summe" type ="INTEGER" size ="2" default ="" notnull ="false" description="Summe" />
<column name="kz_rueck_beur_ein_tsg" type ="SMALLINT" size ="2" default ="" notnull ="false" description="Rückmeldestatus (amtlich) TSG" />
<column name="hzb_land_nr" type ="INTEGER" size ="4" default ="" notnull ="false" description="HZB-Staat"/>
<column name="hzb_land_sub_r_nr" type ="INTEGER" size ="4" default ="" notnull ="false" description="HZB-Ort"/>
<column name="hzb_art_nr" type ="INTEGER" size ="4" default ="" notnull ="false" description="HZB-Art"/>
<column name="hzb_jahr" type ="INTEGER" size ="4" default ="" notnull ="false" description="HZB-Jahr"/>
<column name="hzb_datum" type ="DATE" size ="7" default ="" notnull ="false" description="HZB Datum "/>
<column name="hzb_note" type ="DECIMAL" size ="(14,7)" default ="" notnull ="false" description="HZB-Note"/>
<column name="po_regelstudienzeit" type ="INTEGER" size ="10" default ="" notnull ="false" description="Regelstudienzeit SPO-Version" >
<!--studiengang-->
<column name="studiengang_tid" type ="INTEGER" size ="8" default ="" notnull ="false" description="Studiengang (Join-ID)" />
<column name="studiengangs_identifikator" type ="VARCHAR" size ="255" default ="" notnull ="false" description="Studiengang-Identifikator (ESG/MSG)" />
<column name="studiengangs_identifikator_tsg" type ="VARCHAR" size ="255" default ="" notnull ="false" description="Studiengang-Identifikator (TSG)" />
<column name="st_studiengang_nr" type ="INTEGER" size ="8" default ="" notnull ="false" description="Studiengang (ID) des ESG/MSG" />
<column name="st_studiengang_nr_tsg" type ="INTEGER" size ="8" default ="" notnull ="false" description="Studiengang (ID) des TSG" ><comment>nur bei TSG</comment></column>
<column name="studiengangs_typ_kb" type ="CHAR" size ="10" default ="" notnull ="false" description="Studiengangstyp" currentlyUsed="false"><comment>TSG/ESG</comment></column>
<column name="primaerflag" type ="SMALLINT" size ="2" default ="" notnull ="false" description="Primärfach" />
<column name="studiengang_nr" type ="INTEGER" size ="8" default ="" notnull ="false" description="Studiengang (Nr.)" />
<column name="fach_nr" type ="INTEGER" size ="8" default ="" notnull ="false" description="Fach (Nr.)" />
<column name="unikey" type ="CHAR" size ="10" default ="" notnull ="false" description="Hochschulnummer" />
<column name="tsg_generated" type ="SMALLINT" size ="2" default ="0" notnull ="false" description="Automatisch generierter Datensatz" ><comment>Wenn TSG vor MSG beendet wird, werden TSG-Sätze generiert</comment></column>
<column name="po_stp_stp_version_kb" type ="CHAR" size ="10" default ="" notnull ="false" description="SPO-Version ESG/MSG" >
<sourcefield table="costage_st_studien_spoversionen" name="po_stp_stp_version_kb" sourcesystem="co" />
<comment>Lookup via: st_studium_nr - costage_st_studien_spoversionen.st_studium_nr, hierbei die jeweils letzte (max(gueltig_ab) </comment>
</column>
<column name="po_stp_stp_version_kb_tsg" type ="CHAR" size ="10" default ="" notnull ="false" description="SPO-Version TSG" >
<sourcefield table="costage_st_studien_spoversionen" name="po_stp_stp_version_kb" sourcesystem="co" />
<comment>Lookup via: st_studium_nr - costage_st_studien_spoversionen.st_studium_nr, hierbei die jeweils letzte (max(gueltig_ab) </comment>
</column>
<column name="po_regelstudienzeit" type ="INTEGER" size ="10" default ="" notnull ="false" description="Regelstudienzeit SPO-Version" >
<sourcefield table="costage_st_studien_spoversionen" name="po_regelstudienzeit" sourcesystem="co" />
<comment>Lookup via: st_studium_nr - costage_st_studien_spoversionen.st_studium_nr, hierbei die jeweils letzte (max(gueltig_ab) </comment>
</column>
<column name="endedat_tsg" type ="DATE" size ="4" default ="" notnull ="false" description="Datum der Abmeldung (TSG)"/>
<column name="studiengangs_identifikator_msg" type ="VARCHAR" size ="255" default ="" notnull ="false" description="Studiengang-Identifikator (MSG)" />
<column name="abm_art_s_msg" type ="CHAR" size ="10" default ="" notnull ="false" description="Art Abmeldung (studienbezogen) MSG" >
<column name="stufrm" type ="CHAR" size ="10" default ="" notnull ="false" description="Studienform"/>
<!--studienverlauf-->
<column name="semester" type ="INTEGER" size ="8" default ="" notnull ="true" description="Semester" />
<column name="fachsemester" type ="INTEGER" size ="4" default ="" notnull ="false" description="Fachsemester" />
<column name="hssem" type ="INTEGER" size ="4" default ="" notnull ="false" description="Hochschulsemester" />
<column name="beginn_datum_s" type ="DATE" size ="4" default ="" notnull ="false" description="Beginndatum (studienbezogen) ESG/MSG"/>
<column name="beginn_datum_s_tsg" type ="DATE" size ="4" default ="" notnull ="false" description="Beginndatum (studienbezogen) TSG"/>
<column name="ruebeudat" type ="DATE" size ="4" default ="" notnull ="false" description="Rückmeldedatum"/>
<column name="abm_dat_s" type ="DATE" size ="4" default ="" notnull ="false" description="Abmeldedatum (studienbezogen) ESG/MSG"/>
<column name="abm_dat_s_tsg" type ="DATE" size ="4" default ="" notnull ="false" description="Abmeldedatum (studienbezogen) TSG"/>
<column name="praxissemester" type ="INTEGER" size ="4" default ="" notnull ="false" description="Praxissemester" />
<column name="klinsem" type ="INTEGER" size ="4" default ="" notnull ="false" description="Klinische Semester" />
<column name="st_studium_nr" type ="INTEGER" size ="8" default ="" notnull ="false" description="Nummer des persönlichen Studiums ESG/MSG" />
<column name="st_studium_nr_tsg" type ="INTEGER" size ="8" default ="" notnull ="false" description="Nummer des persönlichen Studiums TSG" />
<!--Studienstatus-->
<column name="st_studienstatus_nr" type ="INTEGER" size ="8" default ="" notnull ="false" description="Studienstatus (ID)" />
<column name="statustyp" type ="CHAR" size ="10" default ="" notnull ="false" description="Studienstatus"><comment>ESG oder, bei TSG, der Status des MSG</comment></column>
<column name="statustyp_tsg" type ="CHAR" size ="10" default ="" notnull ="false" description="Studienstatus TSG" />
<column name="kz_rueck_beur_ein" type ="SMALLINT" size ="2" default ="" notnull ="false" description="Rückmeldestatus (amtlich)" />
<column name="kz_rueck_beur_ein_tsg" type ="SMALLINT" size ="2" default ="" notnull ="false" description="Rückmeldestatus (amtlich) TSG" />
<column name="abm_art_s" type ="CHAR" size ="10" default ="" notnull ="false" description="Abmeldeart (studienbezogen) ESG/MSG" >
<sourcefield table="costage_st_personen_abmeldungen" name="st_abm_art_kurzbezeichnung" sourcesystem="co" />
<comment>Lookup via: st_studium_nr/st_sem_nr - costage_st_personen_abmeldungen.st_studium_nr/st_sem_nr - costage_st_semester.semester_tid / costage_st_abmeldungsarten.bezug='S'</comment>
</column>
<!--<column name="abm_datum_p" type ="DATE" size ="10" default ="" notnull ="false" description="Datum der Abmeldung (personbezogen)" >
<column name="abm_art_s_tsg" type ="CHAR" size ="10" default ="" notnull ="false" description="Abmeldeart (studienbezogen) TSG" >
<sourcefield table="costage_st_personen_abmeldungen" name="st_abm_art_kurzbezeichnung" sourcesystem="co" />
<comment>Lookup via: st_studium_nr/st_sem_nr - costage_st_personen_abmeldungen.st_studium_nr/st_sem_nr - costage_st_semester.semester_tid / costage_st_personen_abmeldungen.person_flag='J'</comment>
</column>-->
<column name="praxissemester" type ="INTEGER" size ="4" default ="" notnull ="false" description="Praxissemester" />
<column name="klinsem" type ="INTEGER" size ="4" default ="" notnull ="false" description="Klinische Semester" />
<comment>Lookup via: st_studium_nr/st_sem_nr - costage_st_personen_abmeldungen.st_studium_nr/st_sem_nr - costage_st_semester.semester_tid / costage_st_abmeldungsarten.bezug='S'</comment>
</column>
<column name="urlaub_art" type ="INTEGER" size ="10" default ="" notnull ="false" description="Beurlaubungsart (amtlich)" >
<sourcefield table="costage_st_urlaube" name="st_urlaub_typ_nr" sourcesystem="co" />
<comment>Lookup via: st_studium_nr/st_sem_nr - costage_st_urlaube.st_studium_nr/st_sem_nr </comment>
</column>
<column name="summe" type ="INTEGER" size ="2" default ="" notnull ="false" description="Summe" />
</columns>
<indexes>
<index name="ix_costage_st_studien_aggr1" unique="false">
<index-column name="matrikelnummer"/>
</index>
<index name="ix_costage_st_studien_aggr2" unique="false">
<index-column name="studiengang_tid"/>
</index>
<index name="ix_costage_st_studien_aggr3" unique="false">
<index-column name="semester"/>
</index>
<index name="ix_costage_st_studien_aggr5" unique="false">
<index-column name="studiengang_nr"/>
</index>
<index name="ix_costage_st_studien_aggr6" unique="false">
<index-column name="fach_nr"/>
</index>
</indexes>
<primaryKeys><rs>
</rs></primaryKeys>
@ -611,34 +646,58 @@ rightname="CS_BIA_STANDARDREPORTS_ADMIN[CO]" /> @@ -611,34 +646,58 @@ rightname="CS_BIA_STANDARDREPORTS_ADMIN[CO]" />
</table>
<!-- neue Views in 0.3 -->
<table name="costage_st_pruef_aggr" thema="Prüfungen und Leistungen" caption="Prüfungen (CO)" typ="Hilfstabelle" releaseUnload="empty">
<columns><column name="st_studium_nr" type ="INTEGER" size ="8" default ="" notnull ="true" description="Studium (ID)" />
<columns>
<!--Studierendendaten-->
<column name="st_studstamm_nr" type ="INTEGER" size ="8" default ="" notnull ="true" description="Studierendenstammdaten (ID)" />
<column name="matrikelnummer" type ="INTEGER" size ="8" default ="" notnull ="false" description="Matrikelnummer" />
<column name="semester" type ="INTEGER" size ="8" default ="" notnull ="false" description="Semester" ><comment>des Prüfungsdatums</comment></column>
<column name="semester_veranst" type ="INTEGER" size ="8" default ="" notnull ="false" description="Semester der Veranstaltung" />
<column name="st_studiengang_nr" type ="INTEGER" size ="8" default ="" notnull ="false" description="Studiengang (ID)" />
<column name="st_studiengang_nr_msg" type ="INTEGER" size ="8" default ="" notnull ="false" description="Studiengang (ID) des MSG" ><comment>nur bei TSG</comment></column>
<!--Studiengang-->
<column name="studiengang_tid" type ="INTEGER" size ="8" default ="" notnull ="false" description="Studiengang (Join-ID)" />
<column name="st_studiengang_nr" type ="INTEGER" size ="8" default ="" notnull ="false" description="Studiengang (ID) ESG/MSG" />
<column name="st_studiengang_nr_tsg" type ="INTEGER" size ="8" default ="" notnull ="false" description="Studiengang (ID) des TSG" ><comment>nur bei TSG</comment></column>
<column name="unikey" type ="CHAR" size ="10" default ="" notnull ="false" description="Hochschulnummer" />
<column name="studienidentifikator" type ="VARCHAR" size ="255" default ="" notnull ="false" description="Studienidentifikator"/>
<column name="studienidentifikator" type ="VARCHAR" size ="255" default ="" notnull ="false" description="Studienidentifikator ESG/MSG"/>
<column name="studienidentifikator_tsg" type ="VARCHAR" size ="255" default ="" notnull ="false" description="Studienidentifikator TSG"/>
<column name="studiengangs_typ_kb" type ="CHAR" size ="10" default ="" notnull ="false" description="Studiengangstyp" currentlyUsed="false"><comment>TSG/ESG</comment></column>
<column name="studiengang_nr" type ="INTEGER" size ="8" default ="" notnull ="false" description="Studiengang (Nr.)" currentlyUsed="false" />
<column name="fach_nr" type ="INTEGER" size ="8" default ="" notnull ="false" description="Fach (Nr.)" />
<column name="po_stp_stp_version_kb" type ="CHAR" size ="10" default ="" notnull ="false" description="SPO-Version ESG/MSG" >
<sourcefield table="costage_st_studien_spoversionen" name="po_stp_stp_version_kb" sourcesystem="co" />
<comment>Lookup via: st_studium_nr - costage_st_studien_spoversionen.st_studium_nr, hierbei die jeweils letzte (max(gueltig_ab) </comment>
</column>
<column name="po_stp_stp_version_kb_tsg" type ="CHAR" size ="10" default ="" notnull ="false" description="SPO-Version TSG" >
<sourcefield table="costage_st_studien_spoversionen" name="po_stp_stp_version_kb" sourcesystem="co" />
<comment>Lookup via: st_studium_nr - costage_st_studien_spoversionen.st_studium_nr, hierbei die jeweils letzte (max(gueltig_ab) </comment>
</column>
<column name="skz_key_abschlussarbeit" type ="CHAR" size ="10" default ="" notnull ="false" description="Fach der Abschlussarbeit bei MSG" />
<column name="po_stp_stp_version_kb_abschlussarbeit" type ="VARCHAR" size ="255" default ="" notnull ="false" description="SPO-Version der Abschlussarbeit bei MSG" />
<!--Studienverlauf-->
<column name="st_studium_nr" type ="INTEGER" size ="8" default ="" notnull ="false" description="Nummer des persönlichen Studiums ESG/MSG" />
<column name="st_studium_nr_tsg" type ="INTEGER" size ="8" default ="" notnull ="false" description="Nummer des persönlichen Studiums TSG" />
<column name="semester" type ="INTEGER" size ="8" default ="" notnull ="false" description="Semester" ><comment>des Prüfungsdatums</comment></column>
<column name="semester_tsg" type ="INTEGER" size ="8" default ="" notnull ="false" description="Semester TSG" />
<column name="semester_veranst" type ="INTEGER" size ="8" default ="" notnull ="false" description="Semester der Veranstaltung" />
<column name="fachsemester" type ="INTEGER" size ="4" default ="" notnull ="false" description="Fachsemester" />
<column name="leistung_nr" type ="INTEGER" size ="4" default ="" notnull ="true" description="Laufnummer der Leistung" />
<column name="fachsemester_tsg" type ="INTEGER" size ="4" default ="" notnull ="false" description="Fachsemester (TSG)" />
<column name="abschnitt" type ="INTEGER" size ="4" default ="" notnull ="false" description="Studienabschnitt"><comment>Hauptprüfung/TSAB</comment></column>
<!--Leistungsdaten-->
<column name="leistungstyp_nr" type ="INTEGER" size ="4" default ="" notnull ="true" description="Leistungstyp" />
<column name="leistungsdetailtyp_kb" type ="VARCHAR" size ="10" default ="" notnull ="false" description="Leistungsdetailtyp" />
<column name="pnr" type ="INTEGER" size ="10" default ="" notnull ="false" description="Prüfungselement Nr." currentlyUsed="false"/>
<column name="abschnitt" type ="INTEGER" size ="4" default ="" notnull ="false" description="Studienabschnitt"><comment>Hauptprüfung/TSAB</comment></column>
<column name="stp_sp_nr" type ="INTEGER" size ="4" default ="" notnull ="false" description="Prüfungsordnung Nr."><comment>Prüfungsordnung Nr.</comment></column>
<column name="note" type ="FLOAT" size ="4" default ="" notnull ="false" description="Note"/>
<column name="stp_sp_nr" type ="INTEGER" size ="4" default ="" notnull ="false" description="Prüfungsordnung Nr." currentlyUsed="false"><comment>Prüfungsordnung Nr.</comment></column>
<column name="note" type ="FLOAT" size ="4" default ="" notnull ="false" description="Note (ESG,MSG)"/>
<column name="note_tsg" type ="FLOAT" size ="4" default ="" notnull ="false" description="Note (TSG)"/>
<column name="credits" type ="FLOAT" size ="4" default ="" notnull ="false" description="Credits" />
<column name="leistungsdatum" type ="DATE" size ="7" default ="" notnull ="false" description="Prüfungsdatum"/>
<column name="leistungsdatum_tsg" type ="DATE" size ="7" default ="" notnull ="false" description="Prüfungsdatum TSG"/>
<column name="anerkannt_flag" type ="CHAR" size ="1" default ="" notnull ="false" description="Anerkannt"><comment>J/N</comment></column>
<column name="leistungsstatus_nr" type ="INTEGER" size ="4" default ="" notnull ="false" description="Redaktionsstatus" currentlyUsed="false" ><comment>gültig/In Bearbeitung </comment></column>
<column name="leistungsstatus_map_kb" type ="CHAR" size ="10" default ="" notnull ="false" description="Prüfungsstatus"/>
<column name="leistung_nr_msg" type ="INTEGER" size ="4" default ="" notnull ="false" description="Eindeutige Laufnummer MSG" />
<column name="leistungsdatum_msg" type ="DATE" size ="7" default ="" notnull ="false" description="Prüfungsdatum MSG"/>
<column name="semester_msg" type ="INTEGER" size ="8" default ="" notnull ="false" description="Semester MSG" />
<column name="leistungsstatus_map_kb" type ="CHAR" size ="10" default ="" notnull ="false" description="Prüfungsstatus ESG/MSG"/>
<column name="leistungsstatus_map_kb_tsg" type ="CHAR" size ="10" default ="" notnull ="false" description="Prüfungsstatus TSG"/>
<column name="leistung_nr" type ="INTEGER" size ="4" default ="" notnull ="false" description="Eindeutige Leistungsnummer ESG/MSG" />
<column name="leistung_nr_tsg" type ="INTEGER" size ="4" default ="" notnull ="false" description="Eindeutige Leistungsnummer TSG" />
<column name="summe" type ="INTEGER" size ="2" default ="" notnull ="false" description="Summe" />
</columns>
<indexes>
<index name="ix_costage_st_pruef_aggr1" unique="false">
@ -733,7 +792,7 @@ rightname="CS_BIA_STANDARDREPORTS_ADMIN[CO]" /> @@ -733,7 +792,7 @@ rightname="CS_BIA_STANDARDREPORTS_ADMIN[CO]" />
<column name="fach_nr" type ="INTEGER" size ="8" default ="" notnull ="false" description="Fach (Nr.)" />
<column name="fachsemester" type ="INTEGER" size ="4" default ="" notnull ="false" description="Fachsemester" />
<column name="stufrm" type ="CHAR" size ="10" default ="" notnull ="false" description="Studienform"/>
<column name="bw_bewerbng_nr_msg" type ="INTEGER" size ="8" default ="" notnull ="false" description="Bewerbung MSG" currentlyUsed="false"/>
<column name="bw_bewerbng_nr_msg" type ="INTEGER" size ="8" default ="" notnull ="false" description="Antragsnummer MSG" />
<column name="bw_sb_svor_nr" type ="INTEGER" size ="4" default ="" notnull ="true" description="Status-Zuordnung"/>
<column name="bw_zul_art_nr" type ="INTEGER" size ="4" default ="" notnull ="false" description="Zulassungsart"/>
<column name="bw_typ_kb" type ="VARCHAR" size ="10" default ="" notnull ="true" description="Bewerbungstyp"/>
@ -744,7 +803,7 @@ rightname="CS_BIA_STANDARDREPORTS_ADMIN[CO]" /> @@ -744,7 +803,7 @@ rightname="CS_BIA_STANDARDREPORTS_ADMIN[CO]" />
<column name="status_qvss" type ="VARCHAR" size ="10" default ="" notnull ="false" description="Status fachliche Zulassungsvoraussetzungen" />
<column name="status_abgabe" type ="VARCHAR" size ="10" default ="" notnull ="false" description="Status Bewerbungsabgabe" />
<column name="status_evs" type ="VARCHAR" size ="10" default ="" notnull ="false" description="Status Einschreibungsvoraussetzungen" />
<column name="bew_kz" type ="VARCHAR" size ="10" default ="" notnull ="false" description="Kennzeichen gültige Bewerbung" />
<column name="bew_kz" type ="VARCHAR" size ="10" default ="" notnull ="false" description="Kennzeichen gültige Bewerbung" ><comment>J=Gültig, S=Storno,U=ungültig</comment></column>
<column name="zul_kz" type ="VARCHAR" size ="10" default ="" notnull ="false" description="Kennzeichen Zulassung" />
<column name="annahme_kz" type ="VARCHAR" size ="10" default ="" notnull ="false" description="Kennzeichen Annahme" />
<column name="einschreib_kz" type ="VARCHAR" size ="10" default ="" notnull ="false" description="Kennzeichen Einschreibung" />
@ -817,6 +876,8 @@ rightname="CS_BIA_STANDARDREPORTS_ADMIN[CO]" /> @@ -817,6 +876,8 @@ rightname="CS_BIA_STANDARDREPORTS_ADMIN[CO]" />
<column name="einstiegs_fachsemester" type ="INTEGER" size ="4" default ="" notnull ="false" />
<column name="fachsemester_gewaehlt" type ="INTEGER" size ="4" default ="" notnull ="false" />
<column name="abgeschickt_datum" type ="DATETIME" size ="7" default ="" notnull ="false" />
<column name="storniert_am" type ="DATETIME" size ="7" default ="" notnull ="false" description="Datum der Stornierung" />
<column name="storniert_von" type ="VARCHAR" size ="255" default ="" notnull ="false" currentlyUsed="false" description="Storniert von (leer)" />
</columns>
<indexes></indexes>
<primaryKeys><rs>
@ -1106,7 +1167,7 @@ rightname="CS_BIA_STANDARDREPORTS_ADMIN[CO]" /> @@ -1106,7 +1167,7 @@ rightname="CS_BIA_STANDARDREPORTS_ADMIN[CO]" />
<columns><column name="leistung_nr" type ="INTEGER" size ="4" default ="" notnull ="true" />
<column name="leistungstyp_nr" type ="INTEGER" size ="4" default ="" notnull ="true" />
<column name="leistungsdetailtyp_kb" type ="VARCHAR" size ="10" default ="" notnull ="false" />
<column name="matrikelnummer" type ="VARCHAR" size ="12" default ="" notnull ="false" />
<column name="matrikelnummer" type ="INTEGER" size ="12" default ="" notnull ="false" />
<column name="vorname" type ="VARCHAR" size ="255" default ="" notnull ="true" />
<column name="nachname" type ="VARCHAR" size ="255" default ="" notnull ="true" />
<column name="st_studium_nr" type ="INTEGER" size ="4" default ="" notnull ="true" />
@ -1140,7 +1201,17 @@ rightname="CS_BIA_STANDARDREPORTS_ADMIN[CO]" /> @@ -1140,7 +1201,17 @@ rightname="CS_BIA_STANDARDREPORTS_ADMIN[CO]" />
<column name="leistungsstatus_map_kb" type ="CHAR" size ="10" default ="" notnull ="false" />
<column name="abs_fach_st_studium_nr" type ="INTEGER" size ="4" default ="" notnull ="false" description="Studium-Nr. der Abschlussarbeit" currentlyUsed="false"><comment>Teilstudiengangsnummer zu der eine Abschlussarbeit zugeordnet ist</comment></column>
</columns>
<indexes></indexes>
<indexes>
<index name="ix_costage_leistungen1" unique="false">
<index-column name="matrikelnummer"/>
</index>
<index name="ix_costage_leistungen2" unique="false">
<index-column name="leistungsdetailtyp_kb"/>
</index>
<index name="ix_costage_leistungen3" unique="false">
<index-column name="abs_fach_st_studium_nr"/>
</index>
</indexes>
<primaryKeys><rs>
</rs></primaryKeys>
<foreignKeys><rs>
@ -1434,23 +1505,23 @@ rightname="CS_BIA_STANDARDREPORTS_ADMIN[CO]" /> @@ -1434,23 +1505,23 @@ rightname="CS_BIA_STANDARDREPORTS_ADMIN[CO]" />
</rs></privileges>
</table>
<table name="costage_ergebnisse" thema="SPO" caption="Studienplankontexte (CO)" typ="Datentabelle" releaseUnload="empty">
<table name="costage_ergebnisse" thema="SPO" caption="Ergebnisse (CO)" typ="Datentabelle" releaseUnload="empty">
<columns><column name="st_studien_nr" type ="INTEGER" size ="4" default ="" notnull ="true" />
<column name="stp_knoten_nr" type ="INTEGER" size ="4" default ="" notnull ="true" />
<column name="vorart_kb" type ="VARCHAR" size ="10" default ="" notnull ="true" />
<column name="flag" type ="VARCHAR" size ="1" default ="" notnull ="false" />
<column name="zahl" type ="INTEGER" size ="4" default ="" notnull ="false" />
<column name="zahl" type ="FLOAT" size ="4" default ="" notnull ="false" />
<column name="drucktext" type ="VARCHAR" size ="255" default ="" notnull ="false" />
<column name="datum" type ="DATE" size ="7" default ="" notnull ="false" />
</columns>
<indexes></indexes>
<primaryKeys><rs>
</rs></primaryKeys>
<foreignKeys><rs>
</rs></foreignKeys>
<importedKeys><rs>
</rs></importedKeys>
<privileges></privileges>
<indexes><index name="ix_costage_ergebnisse1" unique="false">
<index-column name="st_studien_nr"/>
</index>
<index name="ix_costage_ergebnisse2" unique="false">
<index-column name="stp_knoten_nr"/>
</index>
</indexes>
</table>
<table name="costage_studienplankontexte" thema="SPO" caption="Studienplankontexte (CO)" typ="Datentabelle" releaseUnload="empty">
<columns><column name="st_studium_nr" type ="INTEGER" size ="4" default ="" notnull ="false" />
@ -1460,16 +1531,62 @@ rightname="CS_BIA_STANDARDREPORTS_ADMIN[CO]" /> @@ -1460,16 +1531,62 @@ rightname="CS_BIA_STANDARDREPORTS_ADMIN[CO]" />
<column name="stp_knoten_nr_sichtbar" type ="INTEGER" size ="4" default ="" notnull ="false" />
<column name="ghk_nr" type ="INTEGER" size ="4" default ="" notnull ="false" />
</columns>
<indexes></indexes>
<indexes>
<index name="ix_costage_studienplankontexte1" unique="false">
<index-column name="st_studium_nr"/>
</index>
<index name="ix_costage_studienplankontexte2" unique="false">
<index-column name="stp_stp_nr"/>
</index>
</indexes>
</table>
<table name="costage_knoten" thema="SPO" caption="Knoten zur Auflösung von Studienplankontexten. (CO)" typ="Datentabelle" releaseUnload="empty">
<columns><column name="nr" type ="INTEGER" size ="4" default ="" notnull ="true" description="Knotennummer" ><comment>Primary Key</comment></column>
<column name="stp_knoten_nr" type ="INTEGER" size ="4" default ="" notnull ="false" description="Knotennummer Parent- Knoten" ><comment>Knotennummer des übergeordneten Knoten.</comment></column>
<column name="stp_stp_nr" type ="INTEGER" size ="4" default ="" notnull ="false" description="SPO-Versionsnummer" ><comment></comment></column>
<column name="name_de" type ="VARCHAR" size ="255" default ="" notnull ="false" description="Knotenname deutsch" ><comment></comment></column>
<column name="name_en" type ="VARCHAR" size ="255" default ="" notnull ="false" description="Knotenname englisch" ><comment></comment></column>
<column name="kennung" type ="VARCHAR" size ="255" default ="" notnull ="false" description="Kennung des Knoten" ><comment></comment></column>
<column name="credits" type ="FLOAT" size ="4" default ="" notnull ="false" description="Credits am Knoten" ><comment>Anzahl hinterlegter Credits am Knoten.</comment></column>
<column name="haupttyp_kurzbezeichnung" type ="VARCHAR" size ="255" default ="" notnull ="false" description="Kurzbezeichnung des Knotenhaupttyps" ><comment></comment></column>
<column name="subtyp_kurzbezeichnung" type ="VARCHAR" size ="255" default ="" notnull ="false" description="Kurzbezeichnung des Knotensubtyps" ><comment></comment></column>
<column name="haupttyp_name" type ="VARCHAR" size ="255" default ="" notnull ="false" description="Name des Knotenhaupttyps" ><comment></comment></column>
<column name="subtyp_name" type ="VARCHAR" size ="255" default ="" notnull ="false" description="Name des Knotensubtyps" ><comment></comment></column>
<column name="gueltig_von" type ="DATE" size ="7" default ="" notnull ="false" description="Gültig von" ><comment>Attribut „Gültig von“ im SPO-Management.</comment></column>
<column name="gueltig_bis" type ="DATE" size ="7" default ="" notnull ="false" description="Gültig bis" ><comment>Attribut „Gültig bis“ im SPO-Management.</comment></column>
<column name="teil_des_curriculums" type ="CHAR" size ="1" default ="" notnull ="false" description="Knoten Teil des Curriculums" ><comment>Ob der Knoten Teil des Curriculums ist oder nicht (Option im SPO-Management).</comment></column>
<column name="semesterempfehlung_de" type ="VARCHAR" size ="255" default ="" notnull ="true" description="Empfohlenes Semester (W / S) deutsch." ><comment></comment></column>
<column name="semesterempfehlung_en" type ="VARCHAR" size ="255" default ="" notnull ="false" description="Empfohlenes Semester (W / S) englisch." ><comment></comment></column>
<column name="semesterempfehlung_de_kurz" type ="VARCHAR" size ="255" default ="" notnull ="true" description="Kurzbezeichnung des empfohlenen Semesters deutsch." ><comment></comment></column>
<column name="semesterempfehlung_en_kurz" type ="VARCHAR" size ="255" default ="" notnull ="false" description="Kurzbezeichnung des empfohlenen Semesters englisch." ><comment></comment></column>
</columns>
<indexes>
<index name="ix_costage_knoten1" unique="false">
<index-column name="stp_knoten_nr"/>
</index>
<index name="ix_costage_knoten2" unique="false">
<index-column name="stp_stp_nr"/>
</index>
</indexes>
<primaryKeys><rs>
</rs></primaryKeys>
<row>
<fld name='table_cat'>superx</fld>
<fld name='table_schem'>superx</fld>
<fld name='table_name'>costage_knoten</fld>
<fld name='column_name'>nr</fld>
<fld name='key_seq'>1</fld>
<fld name='pk_name'>pk_costage_knoten_nr</fld>
</row></rs></primaryKeys>
<foreignKeys><rs>
</rs></foreignKeys>
<importedKeys><rs>
</rs></importedKeys>
<privileges></privileges>
<privileges><rs>
</rs></privileges>
</table>
<views>
<view name="costage_abschluss_fach_stg" caption="Studiengänge nach Abschluss/Fach" thema="Studierende" typ="Schlüsseltabelle" releaseUnload="demo">
<description>Abschlüsse,Fächer und Studiengänge</description>
@ -1676,7 +1793,7 @@ parent="CO Basisdaten">Abfragen zu Studienplänen und Ordnungen</thema> @@ -1676,7 +1793,7 @@ parent="CO Basisdaten">Abfragen zu Studienplänen und Ordnungen</thema>
</relation>
<relation from="costage_dim_studiengang" to="costage_st_studien_aggr" delete="FALSE"
displayType="select" visibleFields="studiengangs_bezeichnung" format="%s">
<relation-column from="st_studiengang_nr" to="st_studiengang_nr" />
<relation-column from="tid" to="studiengang_tid" />
</relation>
<relation from="costage_st_laender" to="costage_st_studien_aggr" delete="FALSE"
displayType="select" visibleFields="name" format="%s">
@ -1767,7 +1884,7 @@ parent="CO Basisdaten">Abfragen zu Studienplänen und Ordnungen</thema> @@ -1767,7 +1884,7 @@ parent="CO Basisdaten">Abfragen zu Studienplänen und Ordnungen</thema>
</relation>
<relation from="costage_dim_studiengang" to="costage_st_pruef_aggr" delete="FALSE"
displayType="select" visibleFields="studiengangs_bezeichnung" format="%s">
<relation-column from="st_studiengang_nr" to="st_studiengang_nr" />
<relation-column from="tid" to="studiengang_tid" />
</relation>
<relation from="costage_leistungen_typen" to="costage_st_pruef_aggr" delete="FALSE"
displayType="select" visibleFields="name_de" format="%s">
@ -1843,6 +1960,11 @@ parent="CO Basisdaten">Abfragen zu Studienplänen und Ordnungen</thema> @@ -1843,6 +1960,11 @@ parent="CO Basisdaten">Abfragen zu Studienplänen und Ordnungen</thema>
displayType="select" visibleFields="name" format="%s">
<relation-column from="nr" to="bw_zul_art_nr" />
</relation>
<relation from="costage_st_studierendenstammdaten" to="costage_bw_antr_aggr" delete="FALSE"
displayType="select" visibleFields="st_studstamm_nr" format="%s">
<relation-column from="st_studstamm_nr" to="st_studstamm_nr" />
</relation>
<!--costage_st_lv_aggr-->
<relation from="costage_st_semester" to="costage_st_lv_aggr" delete="FALSE"
displayType="select" visibleFields="semester_bezeichnung" format="%s">
@ -1911,12 +2033,15 @@ parent="CO Basisdaten">Abfragen zu Studienplänen und Ordnungen</thema> @@ -1911,12 +2033,15 @@ parent="CO Basisdaten">Abfragen zu Studienplänen und Ordnungen</thema>
<loadtable refresh="true" delimiter="^" header="false" tabname="costage_st_ersthochschulen"><file path="$COSTAGE_LOAD_PFAD/unl/costage_st_ersthochschulen.unl"/></loadtable>
<loadtable refresh="true" delimiter="^" header="false" tabname="costage_st_hochschulsemester_neu"><file path="$COSTAGE_LOAD_PFAD/unl/costage_st_hochschulsemester.unl"/></loadtable>
<loadtable refresh="true" delimiter="^" header="false" tabname="costage_leistungen"><file path="$COSTAGE_LOAD_PFAD/unl/costage_leistungen.unl"/></loadtable>
<loadtable refresh="true" delimiter="^" header="false" tabname="costage_leistungen_status_typen"><file path="$COSTAGE_LOAD_PFAD/unl/costage_leistungen_status_typen.unl"/></loadtable>
<loadtable refresh="true" delimiter="^" header="false" tabname="costage_leistungen_detail_typen"><file path="$COSTAGE_LOAD_PFAD/unl/costage_leistungen_detail_typen.unl"/></loadtable>
<loadtable refresh="true" delimiter="^" header="false" tabname="costage_leistungen_typen"><file path="$COSTAGE_LOAD_PFAD/unl/costage_leistungen_typen.unl"/></loadtable>
<loadtable refresh="true" delimiter="^" header="false" tabname="costage_antritte"><file path="$COSTAGE_LOAD_PFAD/unl/costage_antritte.unl"/></loadtable>
<loadtable refresh="true" delimiter="^" header="false" tabname="costage_gleichheitsknoten"><file path="$COSTAGE_LOAD_PFAD/unl/costage_gleichheitsknoten.unl"/></loadtable>
<loadtable refresh="true" delimiter="^" header="false" tabname="costage_lehrveranstaltungen_neu"><file path="$COSTAGE_LOAD_PFAD/unl/costage_lehrveranstaltungen.unl"/></loadtable>
<loadtable refresh="true" delimiter="^" header="false" tabname="costage_lv_teilnehmende_neu"><file path="$COSTAGE_LOAD_PFAD/unl/costage_lv_teilnehmende.unl"/></loadtable>
<loadtable refresh="true" delimiter="^" header="false" tabname="costage_knoten"><file path="$COSTAGE_LOAD_PFAD/unl/costage_knoten.unl"/></loadtable>
<loadtable refresh="true" delimiter="^" header="false" tabname="costage_ergebnisse"><file path="$COSTAGE_LOAD_PFAD/unl/costage_ergebnisse.unl"/></loadtable>
</action>
</etl-step>
@ -1935,12 +2060,14 @@ parent="CO Basisdaten">Abfragen zu Studienplänen und Ordnungen</thema> @@ -1935,12 +2060,14 @@ parent="CO Basisdaten">Abfragen zu Studienplänen und Ordnungen</thema>
<nativeaction sql="" scriptfile="$COSTAGE_PFAD/datentabellen/trans_costage_lehrveranstaltungen.sql" database=""/>
<nativeaction sql="" scriptfile="$COSTAGE_PFAD/datentabellen/trans_costage_lv_teilnehmende.sql" database=""/>
<nativeaction sql="" scriptfile="$COSTAGE_PFAD/datentabellen/trans_costage_st_hochschulsemester.sql" database=""/>
<nativeaction sql="" scriptfile="$COSTAGE_PFAD/datentabellen/trans_costage_leistungen.sql" database=""/>
</action>
</etl-step>
<etl-step name="Aggregation" type="aggr">
<action>
<nativeaction sql="" scriptfile="$COSTAGE_PFAD/hilfstabellen/costage_st_studien_aggr_fuellen.sql" database=""/>
<nativeaction sql="" scriptfile="$COSTAGE_PFAD/hilfstabellen/costage_st_studien_aggr_fuellen_mit_primerflag.sql" database=""/>
<nativeaction sql="" scriptfile="$COSTAGE_PFAD/hilfstabellen/costage_st_studien_aggr_fuellen_ohne_primerflag.sql" database=""/>
<nativeaction sql="" scriptfile="$COSTAGE_PFAD/hilfstabellen/costage_st_pruef_aggr_fuellen.sql" database=""/>
<nativeaction sql="" scriptfile="$COSTAGE_PFAD/hilfstabellen/costage_bw_antr_aggr_fuellen.sql" database=""/>
<nativeaction sql="" scriptfile="$COSTAGE_PFAD/hilfstabellen/costage_st_lv_aggr_fuellen.sql" database=""/>

12
src-modules/module/costage/datentabellen/trans_costage_st_studierendenstammdaten.sql

@ -17,7 +17,6 @@ geschlecht INTEGER , @@ -17,7 +17,6 @@ geschlecht INTEGER ,
d_geburt DATE ,
ca12_staat INTEGER ,
second_nationality INTEGER ,
d_exmatr DATE ,
abm_art_p char(10),
semester_max INTEGER
)
@ -29,7 +28,7 @@ into temp tmp_max @@ -29,7 +28,7 @@ into temp tmp_max
from costage_st_studierendenstammdaten_neu S,
costage_st_studien ST,
costage_st_semester SM,
costage_st_studienstatus SA
costage_st_studienstatus_neu SA
where S.st_studstamm_nr = ST.st_studstamm_nr
and SA.st_studium_nr=ST.st_studium_nr
and SA.st_sem_nr=SM.st_sem_nr
@ -58,7 +57,6 @@ insert into tmp_st_studierendenstammdaten( @@ -58,7 +57,6 @@ insert into tmp_st_studierendenstammdaten(
-- ca12_staat,
-- second_nationality,
d_geburt,
-- d_exmatr,
semester_max)
select
S.st_studstamm_nr,
@ -82,11 +80,11 @@ M.semester_max @@ -82,11 +80,11 @@ M.semester_max
FROM costage_st_laender L, costage_st_studierendenstammdaten_neu S left outer join tmp_max M
on (M.st_studstamm_nr=S.st_studstamm_nr)
where L.st_land_nr=S.st_land1_nr
and S.matrikelnummer is not null
--and S.matrikelnummer is not null
;
--TODO: statt semesterende das tatsächliche Abmeldungsdatum
update tmp_st_studierendenstammdaten set d_exmatr=date(S.semester_ende),
update tmp_st_studierendenstammdaten set
abm_art_p=A.st_abm_art_kurzbezeichnung
from costage_st_personen_abmeldungen A,costage_st_semester S
where A.st_sem_nr=S.st_sem_nr
@ -124,7 +122,6 @@ insert into costage_st_studierendenstammdaten( @@ -124,7 +122,6 @@ insert into costage_st_studierendenstammdaten(
ca12_staat,
second_nationality,
d_geburt,
d_exmatr,
abm_art_p,
semester_max)
select
@ -144,7 +141,6 @@ st_studstamm_nr, @@ -144,7 +141,6 @@ st_studstamm_nr,
ca12_staat,
second_nationality,
d_geburt,
d_exmatr,
abm_art_p,
semester_max
FROM tmp_st_studierendenstammdaten

81
src-modules/module/costage/gang_costage_unload.xml

@ -0,0 +1,81 @@ @@ -0,0 +1,81 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<superx-unload version="4.0">
<module id="msg" version="1.2" systeminfo_id="7">MSG-Modul</module>
<parameters>
<param name="msg_start_pruef_sem" defaultValue="19911" description="Startsemester Prüfungen"><comment>Ab welchem Semester sollen Prüfungen entladen werden? z.B. 20021 für SS 2002</comment></param>
</parameters>
<sourcesystems>
<sourcesystem name="sospos" description="SOSPOS-GX Datenbank" />
<sourcesystem name="hisinone" description="HIS1 Datenbank" default="true"/>
<sourcesystem name="co" description="CampusOnline-Datenbank" />
</sourcesystems>
<unload-job id="sos_abp" extraction-table="" extraction-script="" transfer-unload-file="unl/sos_abp.unl" >
<comment>Verzeichnis der Abschlussprüfungen (CO).</comment>
<extraction-sql sourcesystem="co" database="" version="">
<![CDATA[
SELECT
P.matrikelnummer,
P.studiengang_nr,
P.fach_nr,
G.abschluss_code as abschluss,
--(case when leistungsdetailtyp_kb='TSAB' then P.semester_tsg
--else P.semester end) as semester,
P.semester,
P.leistungsdatum,
(case when P.studiengangs_typ_kb='MSG' and skz_key_abschlussarbeit is not null then skz_key_abschlussarbeit
else G.skz_key end) as stg,
null::integer as vert,
null::integer as schwp,
string_not_null(G.fachkennzeichen),
P.note,
null::char(7), --pruefungsamt_nr
P.abschnitt as pnr,
(case when leistungsdetailtyp_kb='TSAB' then P.po_stp_stp_version_kb_tsg
when P.studiengangs_typ_kb='MSG' and po_stp_stp_version_kb_abschlussarbeit is not null then po_stp_stp_version_kb_abschlussarbeit
else P.po_stp_stp_version_kb end) as pversion,
P.leistungsstatus_map_kb as pstatus,
P.fachsemester,
P.leistungsdetailtyp_kb as part,
(case when leistungsdetailtyp_kb='TSAB' then P.leistung_nr_tsg
else P.leistung_nr end) as leistung_nr,
null::integer as pversuch,
null::char(7)as ppruef1,
null::char(7) as ppruef2,
null::char(7) as malus,
P.credits as bonus,
stp_sp_nr as pordnr,
null::integer as pvermerk,
0::integer as prueck,
G.studiengangs_typ_kb as zeitabschnitt, --term_segment
P.anerkannt_flag as panerk,
null::integer as pstatkennz,
null::CHAR(1), --stuart
G.stufrm,
null::CHAR(1), --stutyp
P.st_studium_nr as degree_program_id,
P.st_studium_nr_tsg as degree_program_id_tsg,
semester_tsg,
leistungsdatum_tsg,
leistungsstatus_map_kb_tsg as pstatus_tsg,
note_tsg,
fachsemester_tsg as fach_sem_zahl_tsg ,
P.studienidentifikator,
P.studienidentifikator_tsg
FROM costage_st_pruef_aggr P, costage_dim_studiengang G
where G.tid=P.studiengang_tid
and ($EXTERNAL_SUBJECTS ='true'
or P.unikey=(select H.hs_nr::char(10) from hochschulinfo H)
)
AND (P.semester >= $start_pruef_sem or P.semester_tsg >= $start_pruef_sem)
;
]]>
</extraction-sql>
</unload-job>
</superx-unload>

85
src-modules/module/costage/hilfstabellen/costage_bw_antr_aggr_fuellen.sql

@ -6,6 +6,7 @@ SELECT nr, @@ -6,6 +6,7 @@ SELECT nr,
wert,
name
FROM costage_bw_sb_status_werte
order by bw_sb_stat_nr
;
</sqlvar>
<sqlvar name="beginn_semester"><![CDATA[
@ -43,6 +44,7 @@ B.fristende, @@ -43,6 +44,7 @@ B.fristende,
B.einstiegs_fachsemester,
B.fachsemester_gewaehlt,
B.abgeschickt_datum,
B.storniert_am,
E.semester_tid as semester,
S.matrikelnummer,
<#foreach bw_status in bw_stati>
@ -64,7 +66,7 @@ null::DATE as hzb_datum , @@ -64,7 +66,7 @@ null::DATE as hzb_datum ,
null::FLOAT as hzb_note ,
null::INTEGER as hzb_ort ,
null::INTEGER as hzb_staat ,
null::INTEGER as hzb_st_land_nr
null::INTEGER as hzb_st_land_nr
into temp tmp_bew
FROM costage_st_semester E, costage_bw_bewerbungen B
@ -75,18 +77,32 @@ where E.st_sem_nr=B.st_sem_nr @@ -75,18 +77,32 @@ where E.st_sem_nr=B.st_sem_nr
--and B.st_studstamm_nr=1186303
and E.semester_tid >= ${beginn_semester}
;
--klappt nicht weil nicht eindeutig:
-- update tmp_bew set bw_bewerbng_nr_msg=K.bw_bewrbng_nr
-- from costage_bw_bewerbung_kombination K
-- where K.bw_bewrbng_nr_teil=tmp_bew.nr
-- and tmp_bew.bw_typ_kb='TBW'
-- ;
-- update tmp_bew set st_studiengang_nr_msg=B.st_studiengang_nr
-- from costage_bw_bewerbungen B
-- where B.nr=tmp_bew.bw_bewerbng_nr_msg
-- and tmp_bew.bw_typ_kb='TBW'
-- ;
--MSG und fach_nr ermitteln:
update tmp_bew T set bw_bewerbng_nr_msg=K.bw_bewrbng_nr
from costage_bw_bewerbung_kombination K,costage_bw_bewerbungen B
where B.nr=K.bw_bewrbng_nr
and B.st_studstamm_nr=T.st_studstamm_nr
and B.st_sem_nr=T.st_sem_nr
and B.bw_typ_kb='MBW'
and K.bw_bewrbng_nr_teil=T.nr
and T.bw_typ_kb='TBW'
;
update tmp_bew set st_studiengang_nr_msg=B.st_studiengang_nr
from costage_bw_bewerbungen B
where B.nr=tmp_bew.bw_bewerbng_nr_msg
and tmp_bew.bw_typ_kb='TBW'
;
update tmp_bew T set fach_nr=MTSG.studienfach_sortierung
from costage_st_studiengaenge_mtsg MTSG
where T.st_studiengang_nr=MTSG.st_studiengang_nr_tsg
and T.st_studiengang_nr_msg=MTSG.st_studiengang_nr_msg
and T.bw_typ_kb='TBW'
;
update tmp_bew set fach_nr=1 where bw_typ_kb='EBW';
update tmp_bew set unikey=K.unikey
from costage_st_studiengaenge G, costage_st_studienkennzahlen K
@ -102,11 +118,6 @@ where F.nr=tmp_bew.st_studfrm_nr @@ -102,11 +118,6 @@ where F.nr=tmp_bew.st_studfrm_nr
<#foreach bw_status in bw_stati>
<#foreach wert in status_werte>
<#if bw_status.nr == wert.bw_sb_stat_nr>
-- update tmp_bew set status_${bw_status.kb}=S.wert
-- from costage_bw_bewerb_sb_status S
-- where tmp_bew.nr=S.bw_bewerbng_nr
-- and S.bw_sb_stat_nr =${bw_status.nr}
-- ;
update tmp_bew set status_${bw_status.kb}='${wert.wert}'
where exists (select S.bw_bewerbng_nr
@ -115,14 +126,6 @@ where tmp_bew.nr=S.bw_bewerbng_nr @@ -115,14 +126,6 @@ where tmp_bew.nr=S.bw_bewerbng_nr
and S.bw_sb_stat_nr =${bw_status.nr}
and S.wert='${wert.wert}')
;
-- update tmp_bew set status_msg_${bw_status.kb}=S.wert
-- from costage_bw_bewerb_sb_status S
-- where tmp_bew.bw_bewerbng_nr_msg=S.bw_bewerbng_nr
-- and S.bw_sb_stat_nr =${bw_status.nr}
-- ;
--Zum Zeitpunkt der Einschreibung/Annahme muss der Status aus dem MSG kommen.
--Die Zuordnung zum MSG ist aber nicht eindeutig. Beispiel Testfall hat in dem TSG Philosophie
--zwei mögliche MBW-Kombinationen. Daher mit exists abfragen, ob mind. ein MBW den jew. Status=J hat:
@ -136,7 +139,19 @@ and K.bw_bewrbng_nr=S.bw_bewerbng_nr @@ -136,7 +139,19 @@ and K.bw_bewrbng_nr=S.bw_bewerbng_nr
and S.bw_sb_stat_nr =${bw_status.nr}
and S.wert='${wert.wert}')
and bw_typ_kb='TBW'
and (status_msg_${bw_status.kb} is null or status_msg_${bw_status.kb} !='J')
;
--J hat immer höchste Prio:
update tmp_bew set status_msg_${bw_status.kb}='J'
where exists (select S.bw_bewerbng_nr
from costage_bw_bewerb_sb_status S, costage_bw_bewerbung_kombination K
where bw_bewrbng_nr_teil=tmp_bew.nr
and K.bw_bewrbng_nr=S.bw_bewerbng_nr
and S.bw_sb_stat_nr =${bw_status.nr}
and S.wert='J')
and bw_typ_kb='TBW'
;
-- update tmp_bew set status_msg_${bw_status.kb}='J'
-- where exists (select S.bw_bewerbng_nr
-- from costage_bw_bewerb_sb_status S
@ -148,9 +163,21 @@ and bw_typ_kb='TBW' @@ -148,9 +163,21 @@ and bw_typ_kb='TBW'
</#foreach>
</#foreach>
update tmp_bew set bew_kz='U';
update tmp_bew set bew_kz='S'
where storniert_am is not null;
update tmp_bew set bew_kz='J' where status_vss='J';
--Ermittlung Antrags Status:
update tmp_bew set bew_kz='G' where
status_vss in ('J','V')
or status_dok in ('E','T','J')
or status_zul in ('J','V','N')
or status_stpl in ('J','N','R')
or status_qvss in ('J','V')
or status_evs is not null
;
update tmp_bew set zul_kz='J' where status_zul='J';
;
--beim MSG annahme_kz/einschreib_kz noch runterschreiben auf TSG
@ -159,8 +186,14 @@ update tmp_bew set status_evs='J' where status_msg_evs='J'; @@ -159,8 +186,14 @@ update tmp_bew set status_evs='J' where status_msg_evs='J';
update tmp_bew set annahme_kz='J' where status_stpl='J'
;
<#if COSTAGE_BEW_EINSCHR_FILTER?exists>
update tmp_bew as antr set einschreib_kz='J' where ${COSTAGE_BEW_EINSCHR_FILTER}
;
<#else>
update tmp_bew set einschreib_kz='J' where status_evs='J'
;
</#if>
--TODO:

8
src-modules/module/costage/hilfstabellen/costage_st_einzpruef_aggr_fuellen.sql

@ -14,7 +14,7 @@ select min(S.tid) from semester S where S.sem_beginn >= today()-(182*${anz_sem}) @@ -14,7 +14,7 @@ select min(S.tid) from semester S where S.sem_beginn >= today()-(182*${anz_sem})
SELECT
L.st_studium_nr,
S.st_studstamm_nr,
val(L.matrikelnummer) as matrikelnummer,
L.matrikelnummer::integer as matrikelnummer,
null::integer as st_studiengang_nr,
null::integer as studiengang_nr,
null::integer as fach_nr,
@ -65,7 +65,7 @@ into temp tmp_pruef @@ -65,7 +65,7 @@ into temp tmp_pruef
FROM costage_st_semester E, costage_leistungen_typen T, costage_leistungen L, costage_st_studierendenstammdaten S
where E.semester_id=L.veranstaltung_semester
and T.leistungstyp_nr=L.leistungstyp_nr
and S.matrikelnummer::varchar(255)=L.matrikelnummer
and S.matrikelnummer=L.matrikelnummer
-- TSAB/AB:
--and T.kurzbezeichnung in ('AP','AAP') --Abschlussprüfung/Anerkannte Abschlussprüfung
and L.leistungsstatus_nr in (4,2) --Letztgültig/Final/gültige Leistung
@ -83,7 +83,7 @@ insert into tmp_pruef @@ -83,7 +83,7 @@ insert into tmp_pruef
SELECT
L.st_studium_nr,
S.st_studstamm_nr,
val(L.matrikelnummer) as matrikelnummer,
L.matrikelnummer::integer as matrikelnummer,
null::integer as st_studiengang_nr,
null::integer as studiengang_nr,
null::integer as fach_nr,
@ -134,7 +134,7 @@ FROM costage_st_semester E, costage_leistungen_typen T, costage_leistungen L, co @@ -134,7 +134,7 @@ FROM costage_st_semester E, costage_leistungen_typen T, costage_leistungen L, co
where L.leistungsdatum between E.semester_anfang and E.semester_ende
and L.veranstaltung_semester is null
and T.leistungstyp_nr=L.leistungstyp_nr
and S.matrikelnummer::varchar(255)=L.matrikelnummer
and S.matrikelnummer=L.matrikelnummer
-- TSAB/AB:
--and T.kurzbezeichnung in ('AP','AAP') --Abschlussprüfung/Anerkannte Abschlussprüfung
and L.leistungsstatus_nr in (4,2) --Letztgültig/Final/gültige Leistung

463
src-modules/module/costage/hilfstabellen/costage_st_pruef_aggr_fuellen.sql

@ -12,20 +12,23 @@ where param_id='COSTAGE_start_leistungen_sem'; @@ -12,20 +12,23 @@ where param_id='COSTAGE_start_leistungen_sem';
SELECT
L.st_studium_nr,
S.st_studstamm_nr,
val(L.matrikelnummer) as matrikelnummer,
L.matrikelnummer::integer as matrikelnummer,
null::integer as studiengang_tid,
null::integer as st_studiengang_nr,
null::integer as st_studiengang_nr_tsg,
null::integer as studiengang_nr,
null::integer as fach_nr,
null::integer as st_studienstatus_nr,
null::integer as semester,
E.semester_tid as semester_veranst,
null::integer as fachsemester,
null::integer as fachsemester_tsg,
null::integer as st_studium_nr_tsg,
null::varchar(255) as unikey,
L.leistung_nr,
L.leistungstyp_nr,
L.leistungsdetailtyp_kb,
L.studienidentifikator,
L.spov_abschluss,
L.stp_sp_nr,
L.veranstaltung_nummer,
L.veranstaltung_semester,
@ -52,17 +55,30 @@ L.anerkannt_flag, @@ -52,17 +55,30 @@ L.anerkannt_flag,
L.zusatzleistung_flag,
L.leistungsstatus_nr,
L.leistungsstatus_map_kb,
null::char(10) as leistungsstatus_map_kb_msg,
null::float as note_msg,
2::integer as abschnitt, --provisorisch erstmal nur Hauptprüfungen
null::integer as pnr,
null::integer as leistung_nr_msg,
null::integer as st_studiengang_nr_msg,
null::varchar as studienidentifikator_esg_msg,
null::date as leistungsdatum_msg,
null::integer as semester_msg
null::integer as semester_msg,
L.spov_abschluss as po_stp_stp_version_kb_esg_tsg_msg,
null::varchar as po_stp_stp_version_kb,
null::varchar as po_stp_stp_version_kb_tsg,
null::char(10) as studiengangs_typ_kb,
0::integer as abschlussarbeit,
null:: CHAR(10) as skz_key_abschlussarbeit,
null::VARCHAR(255) as po_stp_stp_version_kb_abschlussarbeit
into temp tmp_pruef
FROM costage_st_semester E, costage_leistungen_typen T, costage_leistungen L, costage_st_studierendenstammdaten S
where E.semester_id=L.veranstaltung_semester
and T.leistungstyp_nr=L.leistungstyp_nr
and S.matrikelnummer::varchar(255)=L.matrikelnummer
and S.matrikelnummer=L.matrikelnummer
and S.matrikelnummer in (select ST.matrikelnummer
from costage_st_studierendenstammdaten ST
where ${COSTAGE_STUDENT_FILTER})
-- TSAB/AB:
and T.kurzbezeichnung in ('AP','AAP') --Abschlussprüfung/Anerkannte Abschlussprüfung
and L.leistungsstatus_nr in (4,2) --Letztgültig/Final/gültige Leistung
@ -80,20 +96,23 @@ insert into tmp_pruef @@ -80,20 +96,23 @@ insert into tmp_pruef
SELECT
L.st_studium_nr,
S.st_studstamm_nr,
val(L.matrikelnummer) as matrikelnummer,
L.matrikelnummer::integer as matrikelnummer,
null::integer as studiengang_tid,
null::integer as st_studiengang_nr,
null::integer as st_studiengang_nr_tsg,
null::integer as studiengang_nr,
null::integer as fach_nr,
null::integer as st_studienstatus_nr,
E.semester_tid as semester,
null::integer as semester_veranst,
null::integer as fachsemester,
null::integer AS fachsemester_tsg,
null::integer as st_studium_nr_tsg,
null::varchar(255) as unikey,
L.leistung_nr,
L.leistungstyp_nr,
L.leistungsdetailtyp_kb,
L.studienidentifikator,
L.spov_abschluss,
L.stp_sp_nr,
L.veranstaltung_nummer,
L.veranstaltung_semester,
@ -120,17 +139,30 @@ L.anerkannt_flag, @@ -120,17 +139,30 @@ L.anerkannt_flag,
L.zusatzleistung_flag,
L.leistungsstatus_nr,
L.leistungsstatus_map_kb,
null::char(10) as leistungsstatus_map_kb_msg,
null::float as note_msg,
2::integer as abschnitt, --provisorisch erstmal nur Hauptprüfungen
null::integer as pnr,
null::integer as leistung_nr_msg,
null::integer as st_studiengang_nr_msg,
null::varchar as studienidentifikator_esg_msg,
null::date as leistungsdatum_msg,
null::integer as semester_msg
null::integer as semester_msg,
L.spov_abschluss as po_stp_stp_version_kb_esg_tsg_msg,
null::Varchar as po_stp_stp_version_kb,
null::varchar as po_stp_stp_version_kb_tsg,
null::char(10) as studiengangs_typ_kb,
0::integer as abschlussarbeit,
null:: CHAR(10) as skz_key_abschlussarbeit,
null::VARCHAR(255) as po_stp_stp_version_kb_abschlussarbeit
FROM costage_st_semester E, costage_leistungen_typen T, costage_leistungen L, costage_st_studierendenstammdaten S
where L.leistungsdatum between E.semester_anfang and E.semester_ende
and L.veranstaltung_semester is null
and T.leistungstyp_nr=L.leistungstyp_nr
and S.matrikelnummer::varchar(255)=L.matrikelnummer
and S.matrikelnummer=L.matrikelnummer
and S.matrikelnummer in (select ST.matrikelnummer
from costage_st_studierendenstammdaten ST
where ${COSTAGE_STUDENT_FILTER})
-- TSAB/AB:
and T.kurzbezeichnung in ('AP','AAP') --Abschlussprüfung/Anerkannte Abschlussprüfung
and L.leistungsstatus_nr in (4,2) --Letztgültig/Final/gültige Leistung
@ -148,9 +180,80 @@ update tmp_pruef set st_studiengang_nr=S.st_studiengang_nr @@ -148,9 +180,80 @@ update tmp_pruef set st_studiengang_nr=S.st_studiengang_nr
from costage_st_studien S
where S.st_studium_nr=tmp_pruef.st_studium_nr
and S.st_studstamm_nr=tmp_pruef.st_studstamm_nr
and tmp_pruef.leistungsdetailtyp_kb!='TSAB'
;
update tmp_pruef set st_studiengang_nr_tsg=S.st_studiengang_nr,
st_studium_nr=null,--hier soll der MSG rein
st_studium_nr_tsg=S.st_studium_nr
from costage_st_studien S
where S.st_studium_nr=tmp_pruef.st_studium_nr
and S.st_studstamm_nr=tmp_pruef.st_studstamm_nr
and tmp_pruef.leistungsdetailtyp_kb='TSAB'
;
--studiengangs_typ_kb ermitteln:
update tmp_pruef set studiengangs_typ_kb=G.studiengangs_typ_kb
from costage_st_studiengaenge G
where G.st_studiengang_nr=tmp_pruef.st_studiengang_nr;
update tmp_pruef set studiengangs_typ_kb=G.studiengangs_typ_kb
from costage_st_studiengaenge G
where G.st_studiengang_nr=tmp_pruef.st_studiengang_nr_tsg;
--bei TSG die Nr. des pers. Studiums zuweisen, in dem die Abschlussarbeit war:
update tmp_pruef set abschlussarbeit=1
from costage_leistungen L
where L.leistungsdetailtyp_kb='BAKARBN'
and tmp_pruef.st_studium_nr_tsg=L.abs_fach_st_studium_nr
and tmp_pruef.studiengangs_typ_kb='TSG'
and tmp_pruef.leistungsdetailtyp_kb='TSAB'
;
--Studiengangs-TID ermitteln:
update tmp_pruef set studiengang_tid=D.tid
from costage_dim_studiengang D
where D.st_studiengang_nr=tmp_pruef.st_studiengang_nr
and tmp_pruef.leistungsdetailtyp_kb!='TSAB';
update tmp_pruef set studiengang_tid=D.tid
from costage_dim_studiengang D
where D.st_studiengang_nr=tmp_pruef.st_studiengang_nr_tsg
and tmp_pruef.leistungsdetailtyp_kb='TSAB';
--Fachsemester aus Sem. des Prüfungsdatums holen:
update tmp_pruef set
fachsemester = S.fachsemester
from costage_st_studien_aggr S
where S.semester=tmp_pruef.semester
and S.st_studium_nr=tmp_pruef.st_studium_nr
and S.matrikelnummer=tmp_pruef.matrikelnummer
;
update tmp_pruef set
fachsemester_tsg = S.fachsemester
from costage_st_studien_aggr S
where S.semester=tmp_pruef.semester
and S.st_studium_nr_tsg=tmp_pruef.st_studium_nr_tsg
and S.matrikelnummer=tmp_pruef.matrikelnummer
and leistungsdetailtyp_kb ='TSAB'
;
--bei TSAB die Nr. des persönlichen Studiums und Fach-Nr. / unikey aus dem Studienverlauf holen:
update tmp_pruef set st_studium_nr=S.st_studium_nr,
st_studiengang_nr=S.st_studiengang_nr,
studienidentifikator=S.studiengangs_identifikator_tsg,
fach_nr=S.fach_nr,
unikey=S.unikey
from costage_st_studien_aggr S
where S.semester=tmp_pruef.semester
and S.st_studiengang_nr_tsg=tmp_pruef.st_studiengang_nr_tsg
and S.matrikelnummer=tmp_pruef.matrikelnummer
and leistungsdetailtyp_kb ='TSAB'
;
--Prüfung kann nach letztem eingeschr. Semester sein, daher zuerst letztes Sem. ermitteln:
--zuerst MSG und ESG:
select S.st_studium_nr,
S.matrikelnummer,
null::integer as st_studienstatus_nr,
@ -163,26 +266,67 @@ into temp tmp_max_sem @@ -163,26 +266,67 @@ into temp tmp_max_sem
from costage_st_studien_aggr S, tmp_pruef P
where S.st_studium_nr=P.st_studium_nr
and S.matrikelnummer=P.matrikelnummer
and P.leistungsdetailtyp_kb !='TSAB'
group by 1,2
;
--Dann Studium vom letzten Semester in den Prüfungs-Datensatz schreiben:
update tmp_pruef set
st_studienstatus_nr=S.st_studienstatus_nr,
fachsemester = S.fachsemester,
--fachsemester = S.fachsemester, --wird oben ermittelt, ab 0.6 nicht mehr aus letztem Studiums-Semester
studiengang_nr=S.studiengang_nr,
fach_nr=S.fach_nr,
unikey=S.unikey,
st_studiengang_nr_msg=S.st_studiengang_nr_msg
st_studiengang_nr=S.st_studiengang_nr,
fach_nr=S.fach_nr --,
--unikey=S.unikey
from tmp_max_sem M, costage_st_studien_aggr S
where S.matrikelnummer=M.matrikelnummer
and S.st_studium_nr=M.st_studium_nr
and S.semester=M.semester
and S.st_studium_nr=tmp_pruef.st_studium_nr
and S.matrikelnummer=tmp_pruef.matrikelnummer
and leistungsdetailtyp_kb !='TSAB'
;
drop table tmp_max_sem;
--jetzt TSAB:
--zuerst MSG und ESG:
select S.st_studium_nr_tsg,
S.matrikelnummer,
null::integer as st_studienstatus_nr,
null::integer as studiengang_nr,
null::integer as fach_nr,
null::char(10) as unikey,
null::integer as st_studiengang_nr_msg,
max(S.semester) as semester
into temp tmp_max_sem
from costage_st_studien_aggr S, tmp_pruef P
where S.st_studium_nr_tsg=P.st_studium_nr_tsg
and S.matrikelnummer=P.matrikelnummer
and P.leistungsdetailtyp_kb ='TSAB'
group by 1,2
;
--Dann Studium vom letzten Semester in den Prüfungs-Datensatz schreiben:
--TODO langsam:
update tmp_pruef set
st_studienstatus_nr=S.st_studienstatus_nr,
st_studium_nr=S.st_studium_nr,
--fachsemester = S.fachsemester, --wird oben ermittelt, ab 0.6 nicht mehr aus letztem Studiums-Semester
studiengang_nr=S.studiengang_nr,
st_studiengang_nr=S.st_studiengang_nr,
fach_nr=S.fach_nr
from tmp_max_sem M, costage_st_studien_aggr S
where S.matrikelnummer=M.matrikelnummer
and S.st_studium_nr_tsg=M.st_studium_nr_tsg
and S.semester=M.semester
and S.st_studium_nr_tsg=tmp_pruef.st_studium_nr_tsg
and S.matrikelnummer=tmp_pruef.matrikelnummer
and leistungsdetailtyp_kb ='TSAB'
;
--TODO: bei MSG leer, bei EST und TSG gefüllt
drop table tmp_max_sem;
--MSG-Daten nachladen:
--zuerst Kopie nur mit MSG:
select * into temp tmp_pruef2
@ -190,17 +334,41 @@ from tmp_pruef @@ -190,17 +334,41 @@ from tmp_pruef
where leistungsdetailtyp_kb !='TSAB'
;
--Dann Nr., Datum und Semster des MSG nachladen (TODO: ggf. noch Fachsemester?)
--Dann Nr., Datum, Note und Semester des MSG nachladen (TODO: ggf. noch Fachsemester?)
update tmp_pruef set leistung_nr_msg=T.leistung_nr,
leistungsdatum_msg=T.leistungsdatum,
semester_msg=T.semester
semester_msg=T.semester,
leistungsstatus_map_kb_msg=T.leistungsstatus_map_kb,
note_msg=(case when T.pv_notenskala_typ_kb in ('DE1','DE2','DE3','DE4','DE5','DE6','DE7') or T.pv_notenskala_typ_kb is null then T.note_zahl else null::float end),
studienidentifikator_esg_msg=T.studienidentifikator,
st_studium_nr=T.st_studium_nr,
po_stp_stp_version_kb=T.po_stp_stp_version_kb_esg_tsg_msg
from tmp_pruef2 T
where tmp_pruef.st_studiengang_nr_msg=T.st_studiengang_nr
where tmp_pruef.st_studiengang_nr=T.st_studiengang_nr
and tmp_pruef.leistungsdetailtyp_kb ='TSAB'
and T.matrikelnummer=tmp_pruef.matrikelnummer
;
--Fallback wenn der MSG bei TSG nicht gefunden wird, weil der MSG gewechselt hat oder der TSG im jew. Semester der Prüfung geschlossen wurde:
--nach allen verfügbaren MSG gehen
update tmp_pruef set leistung_nr_msg=T.leistung_nr,
leistungsdatum_msg=T.leistungsdatum,
semester_msg=T.semester,
leistungsstatus_map_kb_msg=T.leistungsstatus_map_kb,
note_msg=(case when T.pv_notenskala_typ_kb in ('DE1','DE2','DE3','DE4','DE5','DE6','DE7') or T.pv_notenskala_typ_kb is null then T.note_zahl else null::float end),
studienidentifikator_esg_msg=T.studienidentifikator,
st_studium_nr=T.st_studium_nr,
po_stp_stp_version_kb=T.po_stp_stp_version_kb_esg_tsg_msg
from tmp_pruef2 T, costage_st_studiengaenge_mtsg M
where tmp_pruef.st_studiengang_nr_tsg=M.st_studiengang_nr_tsg
and M.st_studiengang_nr_msg=T.st_studiengang_nr
and tmp_pruef.leistungsdetailtyp_kb ='TSAB'
and tmp_pruef.leistung_nr_msg is null
and T.matrikelnummer=tmp_pruef.matrikelnummer
;
--Leistungsdatum determiniert Semester auch bei MSG:
-- update tmp_pruef set semester=E.semester_tid
-- FROM costage_st_semester E
@ -210,9 +378,64 @@ and T.matrikelnummer=tmp_pruef.matrikelnummer @@ -210,9 +378,64 @@ and T.matrikelnummer=tmp_pruef.matrikelnummer
update tmp_pruef set leistung_nr_msg=leistung_nr,
leistungsdatum_msg=leistungsdatum,
semester_msg=semester
semester_msg=semester,
leistungsstatus_map_kb_msg=leistungsstatus_map_kb,
studienidentifikator_esg_msg=studienidentifikator
where tmp_pruef.leistungsdetailtyp_kb !='TSAB'
;
--Fachsemester bei MSG gibt es in CO nicht. Daher die Regel:
--die Fachsemesterzahl sollte die höchste FS-Zahl aus allen TSG enthalten:
select matrikelnummer,st_studiengang_nr,max(semester) as semester_max,max(fachsemester_tsg) as fachsem_max
into temp tmp_fachsem_msg
from tmp_pruef
where leistungsdetailtyp_kb='TSAB'
and st_studiengang_nr is not null
group by 1,2;
update tmp_pruef set fachsemester=T.fachsem_max
from tmp_fachsem_msg T
where T.matrikelnummer=tmp_pruef.matrikelnummer
and T.st_studiengang_nr=tmp_pruef.st_studiengang_nr
and T.semester_max <=tmp_pruef.semester
and tmp_pruef.leistungsdetailtyp_kb='BAKN'
;
update tmp_pruef set fachsemester=T.fachsem_max
from tmp_fachsem_msg T
where T.matrikelnummer=tmp_pruef.matrikelnummer
and T.st_studiengang_nr=tmp_pruef.st_studiengang_nr
and T.semester_max >=tmp_pruef.semester
and tmp_pruef.leistungsdetailtyp_kb='TSAB'
;
drop table tmp_fachsem_msg;
--studienidentifikator_esg_msg aus Studium nachpflegen, wenn
--der MSG noch nicht absolviert ist:
update tmp_pruef P set studienidentifikator_esg_msg=S.studiengangs_identifikator
from costage_st_studien_aggr S
where S.matrikelnummer=P.matrikelnummer
and S.st_studium_nr_tsg=P.st_studium_nr_tsg
and S.semester=P.semester
and P.leistungsdetailtyp_kb ='TSAB'
and P.studienidentifikator_esg_msg is null
;
--teilweise kann die Leistung vor oder nach dem Studium sein, daher in 2. Prio ohne Semester:
update tmp_pruef P set studienidentifikator_esg_msg=S.studiengangs_identifikator,
st_studienstatus_nr=S.st_studienstatus_nr,
studiengang_nr=S.studiengang_nr,
st_studiengang_nr=S.st_studiengang_nr,
fach_nr=S.fach_nr --,
--semester_msg=S.semester
from costage_st_studien_aggr S
where S.matrikelnummer=P.matrikelnummer
and S.st_studium_nr_tsg=P.st_studium_nr_tsg
--and S.semester=P.semester
and P.leistungsdetailtyp_kb ='TSAB'
and P.studienidentifikator_esg_msg is null
;
--unikey setzen, wenn noch nicht vorhanden (z.B. bei MSG):
update tmp_pruef set unikey=K.unikey
@ -221,70 +444,238 @@ where G.st_studiengang_nr=tmp_pruef.st_studiengang_nr @@ -221,70 +444,238 @@ where G.st_studiengang_nr=tmp_pruef.st_studiengang_nr
and K.st_skz_nr=G.st_skz_nr
and tmp_pruef.unikey is null
;
--Nun bei TSG:
update tmp_pruef set unikey=K.unikey
from costage_st_studiengaenge G, costage_st_studienkennzahlen K
where G.st_studiengang_nr=tmp_pruef.st_studiengang_nr_tsg
and K.st_skz_nr=G.st_skz_nr
and tmp_pruef.unikey is null
;
--MSG Prüfungen können keine Fachnr. haben, daher entfernen:
update tmp_pruef set fach_nr=null
where tmp_pruef.leistungsdetailtyp_kb!='TSAB'
and exists (select G.st_studiengang_nr
from costage_st_studiengaenge G
where G.st_studiengang_nr=tmp_pruef.st_studiengang_nr
and G.studiengangs_typ_kb='MSG')
;
--bei MSG das Fach und SPO-Version der abschlussarbeit ermitteln:
--zuerst Kopie nur mit TSG der Abschlussarbeit:
select * into temp tmp_pruef3
from tmp_pruef
where leistungsdetailtyp_kb ='TSAB'
and abschlussarbeit=1
;
create index tmp_ix_123 on tmp_pruef3(studiengang_tid);
create index tmp_ix_1234 on tmp_pruef3(st_studium_nr);
update tmp_pruef set skz_key_abschlussarbeit=G.skz_key,
po_stp_stp_version_kb_abschlussarbeit=T.po_stp_stp_version_kb
from tmp_pruef3 T, costage_dim_studiengang G
where G.tid=T.studiengang_tid
and T.st_studium_nr=tmp_pruef.st_studium_nr
and tmp_pruef.studiengangs_typ_kb='MSG'
;
delete from costage_st_pruef_aggr
where semester >= ${beginn_semester};
where (semester >= ${beginn_semester}
or semester_tsg >= ${beginn_semester})
--zum Testen:
--and matrikelnummer in (select ST.matrikelnummer
--from costage_st_studierendenstammdaten ST
--where ${COSTAGE_STUDENT_FILTER})
;
insert into costage_st_pruef_aggr(st_studium_nr,
st_studium_nr_tsg,
st_studstamm_nr,
matrikelnummer,
semester,
semester_tsg,
semester_veranst,
studiengang_tid,
st_studiengang_nr,
st_studiengang_nr_msg,
st_studiengang_nr_tsg,
studiengang_nr,
studiengangs_typ_kb,
fach_nr,
unikey,
studienidentifikator,
studienidentifikator_tsg,
fachsemester,
leistung_nr,
fachsemester_tsg,
leistungstyp_nr,
leistungsdetailtyp_kb,
pnr,
abschnitt,
stp_sp_nr,
po_stp_stp_version_kb,
po_stp_stp_version_kb_tsg,
note,
note_tsg,
credits,
leistungsdatum,
anerkannt_flag,
leistungsstatus_nr,
leistungsstatus_map_kb,
leistung_nr_msg,
leistungsdatum_msg,
semester_msg,
leistungsstatus_map_kb_tsg,
leistung_nr,
leistung_nr_tsg,
leistungsdatum,
leistungsdatum_tsg,
skz_key_abschlussarbeit,
po_stp_stp_version_kb_abschlussarbeit,
summe)
select
st_studium_nr,
st_studium_nr_tsg,
st_studstamm_nr,
matrikelnummer,
semester,
(case when leistungsdetailtyp_kb='TSAB' then semester_msg
else semester end) as semester ,
(case when leistungsdetailtyp_kb='TSAB' then semester
else null::integer end) as semester_tsg ,
semester_veranst,
studiengang_tid,
st_studiengang_nr,
st_studiengang_nr_msg,
st_studiengang_nr_tsg,
studiengang_nr,
studiengangs_typ_kb,
fach_nr,
unikey,
substring(studienidentifikator from 1 for 255),
substring(studienidentifikator_esg_msg from 1 for 255) as studienidentifikator,
(case when leistungsdetailtyp_kb='TSAB' then substring(studienidentifikator from 1 for 255)
else null::varchar(255) end) as studienidentifikator_tsg,
fachsemester,
leistung_nr,
fachsemester_tsg,
leistungstyp_nr,
leistungsdetailtyp_kb,
pnr,
abschnitt,
stp_sp_nr,
case when pv_notenskala_typ_kb in ('DE1','DE2','DE3','DE4','DE5','DE6','DE7') or pv_notenskala_typ_kb is null then note_zahl else null::float end as note,
(case when leistungsdetailtyp_kb='TSAB' then po_stp_stp_version_kb else po_stp_stp_version_kb_esg_tsg_msg end) as po_stp_stp_version_kb,
(case when leistungsdetailtyp_kb='TSAB' then po_stp_stp_version_kb_esg_tsg_msg
else null::varchar end) as po_stp_stp_version_kb_tsg ,
(case when leistungsdetailtyp_kb='TSAB' then note_msg
else (
case when pv_notenskala_typ_kb in ('DE1','DE2','DE3','DE4','DE5','DE6','DE7')
or pv_notenskala_typ_kb is null
then note_zahl else null::float end) end) as note,
(case when leistungsdetailtyp_kb='TSAB' and (pv_notenskala_typ_kb in ('DE1','DE2','DE3','DE4','DE5','DE6','DE7')
or pv_notenskala_typ_kb is null)
then note_zahl else null::float end) as note_tsg,
credits,
leistungsdatum,
anerkannt_flag,
leistungsstatus_nr,
leistungsstatus_map_kb,
leistung_nr_msg,
leistungsdatum_msg,
semester_msg,
count(*)
(case when leistungsdetailtyp_kb='TSAB' then leistungsstatus_map_kb_msg
else leistungsstatus_map_kb end) as leistungsstatus_map_kb,
(case when leistungsdetailtyp_kb='TSAB' then leistungsstatus_map_kb
else null::char(10) end) as leistungsstatus_map_kb_tsg,
(case when leistungsdetailtyp_kb='TSAB' then leistung_nr_msg
else leistung_nr end) as leistung_nr,
(case when leistungsdetailtyp_kb='TSAB' then leistung_nr
else null::integer end) as leistung_nr_tsg,
(case when leistungsdetailtyp_kb='TSAB' then leistungsdatum_msg
else leistungsdatum end) as leistungsdatum ,
(case when leistungsdetailtyp_kb='TSAB' then leistungsdatum
else null::date end) as leistungsdatum_tsg ,
skz_key_abschlussarbeit,
po_stp_stp_version_kb_abschlussarbeit,
1 as summe
from tmp_pruef
group by 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27;
--group by leistungsdatum,studiengangs_typ_kb,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30
;
--TSG Daten nachtragen:
update costage_st_pruef_aggr set
studiengang_nr=S.studiengang_nr,
st_studiengang_nr=S.st_studiengang_nr,
st_studiengang_nr_tsg=S.st_studiengang_nr_tsg,
--fach_nr=S.fach_nr,
unikey=S.unikey,
fachsemester_tsg=S.fachsemester
from costage_st_studien_aggr S
where 1=1
and S.st_studium_nr_tsg=costage_st_pruef_aggr.st_studium_nr_tsg
and S.matrikelnummer=costage_st_pruef_aggr.matrikelnummer
and costage_st_pruef_aggr.leistungsdetailtyp_kb ='TSAB'
and costage_st_pruef_aggr.semester_tsg=S.semester
;
--leere Fachsemester kommen immer noch vor, wenn die Prüfung nach oder vor dem pers. Studium war
--Daher die Regel: wenn die Prüfung vor dem ersten eingeschr. Semester war, soll
--sie das minimale Fachsemester haben,
-- wenn sie nach dem letzten eingeschr. Semester war,
--soll die Fachsemesterzahl das max. Fachsemester haben
drop table if exists tmp_studium_sem;
select matrikelnummer,st_studiengang_nr,
min(semester) as semester_min,
max(semester) as semester_max,
min(fachsemester) as fachsemester_min,
max(fachsemester) as fachsemester_max
into temp tmp_studium_sem
from costage_st_studien_aggr S
where S.matrikelnummer in (select distinct P.matrikelnummer
from costage_st_pruef_aggr P
where P.fachsemester is null or P.fachsemester_tsg is null)
group by 1,2
;
--testfall: die Prüfung war 20212,
--select * from tmp_studium_sem;
--die Prüfung war nach dem letzten eingeschr. Semester:
update costage_st_pruef_aggr P
set fachsemester=T.fachsemester_max
from tmp_studium_sem T
where T.matrikelnummer=P.matrikelnummer
and T.st_studiengang_nr=P.st_studiengang_nr
and T.semester_max < P.semester
and P.st_studiengang_nr is not null
and P.fachsemester is null;
--nun TSG:
update costage_st_pruef_aggr P
set fachsemester_tsg=T.fachsemester_max
from tmp_studium_sem T
where T.matrikelnummer=P.matrikelnummer
and T.st_studiengang_nr=P.st_studiengang_nr
and T.semester_max < P.semester_tsg
and P.st_studiengang_nr is not null
and P.fachsemester_tsg is null;
--die Prüfung war vor dem ersten eingeschr. Semester:
update costage_st_pruef_aggr P
set fachsemester=T.fachsemester_min
from tmp_studium_sem T
where T.matrikelnummer=P.matrikelnummer
and T.st_studiengang_nr=P.st_studiengang_nr
and T.semester_min > P.semester
and P.st_studiengang_nr is not null
and P.fachsemester is null;
--TSG:
update costage_st_pruef_aggr P
set fachsemester_tsg=T.fachsemester_min
from tmp_studium_sem T
where T.matrikelnummer=P.matrikelnummer
and T.st_studiengang_nr=P.st_studiengang_nr
and T.semester_min > P.semester_tsg
and P.st_studiengang_nr is not null
and P.fachsemester_tsg is null
;
drop table if exists tmp_studium_sem;
drop table tmp_pruef;
drop table tmp_pruef2;
drop table tmp_pruef3;

495
src-modules/module/costage/hilfstabellen/costage_st_studien_aggr_fuellen.sql

@ -26,7 +26,8 @@ ST.st_studiengang_nr, @@ -26,7 +26,8 @@ ST.st_studiengang_nr,
SG.studiengangs_typ_kb,
SA.studienstatustyp,
SA.st_studienstatus_nr,
SA.beginn_datum,
(case when SG.studiengangs_typ_kb in ('TSG') then date(SA.beginn_datum) else null::timestamp end) as beginn_datum_s_tsg,
SA.beginn_datum as beginn_datum_s,
SA.gueltig_ab,
val(S.matrikelnummer) as matrikelnummer,
S.geschlecht,
@ -34,11 +35,8 @@ S.ca12_staat, @@ -34,11 +35,8 @@ S.ca12_staat,
S.second_nationality,
SG.fachkennzeichen,
ST.studienform_statistik_code,
--(case when SG.studiengangs_typ_kb in ('MSG') then SG.st_studiengang_nr else null::integer end) as st_studiengang_nr_msg,
null::varchar(255) as studiengangs_identifikator_msg,
null::integer as st_studiengang_nr_msg_primaerflag,
--(case when SG.studiengangs_typ_kb in ('TSG') then SG.st_studiengang_nr else null::integer end) as st_studiengang_nr_tsg,
--null::integer as studienfach_sortierung,
null::char(10) as hrst,
null::integer as fachsemester,
null::integer as praxissemester,
@ -53,7 +51,7 @@ null::integer as fach_nr, @@ -53,7 +51,7 @@ null::integer as fach_nr,
null::char(10) as unikey,
null::date as anfdat,
null::date as ruebeudat,
null::date as endedat,
null::date as abm_dat_s,
null::smallint as kz_rueck_beur_ein,
null::smallint as kz_rueck_beur_ein_tsg,
null::integer as hzb_art_nr,
@ -63,7 +61,9 @@ null::integer as hzb_jahr, @@ -63,7 +61,9 @@ null::integer as hzb_jahr,
null::date as hzb_datum ,
null::decimal(14,7) as hzb_note,
null::char(10) as abm_art_s,
rank () over (partition by SM.st_sem_nr, S.st_studstamm_nr, SG.studiengangs_identifikator order by SA.gueltig_ab desc) as status_historie
null::char(10) as stg_astat,
null::char(10) as abschluss_astat,
rank () over (partition by SM.st_sem_nr, S.st_studstamm_nr, SG.studiengangs_identifikator order by SA.gueltig_ab desc,SA.studienstatustyp desc) as status_historie
--rank () over (partition by SM.st_sem_nr, S.st_studstamm_nr, SG.studiengangs_identifikator order by (case when SA.gueltig_ab =SM.semester_ende then date_val('01.01.1900') else SA.gueltig_ab end) desc) as status_historie
into temp tmp_studien
FROM costage_st_studierendenstammdaten S,
@ -88,8 +88,11 @@ and (SA.studienstatustyp not in ('Z','X') or ( @@ -88,8 +88,11 @@ and (SA.studienstatustyp not in ('Z','X') or (
and SA.gueltig_ab <= today()
and date(SA.gueltig_ab) < date(SM.semester_ende)
)) --Studis außer erst/neueinschr/rückmeld/beurlaubt werden in der Semestermitte exmatr. zum Endedatum Semesterende, wenn dieses Datum in der Zukunft liegt soll der Studi mit dem vorherigen Status erscheinen
--and SA.studienstatustyp not in ('a','o')
--group by 1,2,3,4,5,6,7,8,9,10,11,12,13
<#if COSTAGE_STUDIENSTATUS_FILTER?exists>
and ${COSTAGE_STUDIENSTATUS_FILTER}
<#else>
and SA.studienstatustyp not in ('a','o','z')
</#if>
and ${COSTAGE_STUDENT_FILTER}
and SM.semester_tid >= ${beginn_semester}
;
@ -104,6 +107,38 @@ and tmp_studien.st_sem_nr = H.st_sem_nr @@ -104,6 +107,38 @@ and tmp_studien.st_sem_nr = H.st_sem_nr
and hoererstatus_kb != 'E' --der Hörerstatus "E - Exmatrikuliert" gilt eigentlich erst zum Studienende, hat aber kein "gültig ab" Datum. Der Hörerstatus "E" kann ignoriert werden.
;
<#if K_CO_interpret_primaerflag==0>
update tmp_studien T set stg_astat=(select F.statistik_code
from costage_st_studiengaenge G, costage_st_studienfaecher F,costage_st_studienkennzahlen SK
where T.st_studiengang_nr=G.st_studiengang_nr
and F.st_stdfach_nr=SK.st_stdfach_nr
and G.skz_key=SK.skz_key);
update tmp_studien T set abschluss_astat=(select A.statistik_code
from costage_st_studiengaenge G, costage_st_abschlussziele_amtstat A,costage_st_abschlussziele_lokal AL
where T.st_studiengang_nr=G.st_studiengang_nr
and A.st_absz_amtstat_nr=AL.st_absz_amtstat_nr
and G.st_absz_nr=AL.st_absz_nr);
update tmp_studien T set (studiengang_nr,fach_nr)=
(select A.studiengang_nr,A.fach_nr
FROM qa_sos_stg_aggr_astat A
where A.matrikel_nr=T.matrikelnummer
and A.sem_rueck_beur_ein=T.semester
and A.stg=T.stg_astat
and A.abschluss=T.abschluss_astat
and A.kz_rueck_beur_ein!=5)
where 1=(select count(*)
FROM qa_sos_stg_aggr_astat A
where A.matrikel_nr=T.matrikelnummer
and A.sem_rueck_beur_ein=T.semester
and A.stg=T.stg_astat
and A.abschluss=T.abschluss_astat
and A.kz_rueck_beur_ein!=5);
</#if>
--tmp_studien enthält TSG, ESG und MSG
--zuerst die msg:
drop table if exists tmp_studien_msg;
@ -118,10 +153,18 @@ st_studstamm_nr, @@ -118,10 +153,18 @@ st_studstamm_nr,
st_studiengang_nr,
studienstatustyp,
st_studienstatus_nr,
beginn_datum,
beginn_datum_s,
gueltig_ab,
semester,
<#if K_CO_interpret_primaerflag==1>
primaerflag_studien,
<#else>
(case when studiengang_nr=1 then 1 else 0 end)
--dense_rank () over (partition by semester, st_studstamm_nr,studiengang_nr order by
-- (studiengangs_identifikator)
-- )
as primaerflag_studien,
</#if>
hrst,
null::char(10) as abm_art_s
into temp tmp_studien_msg
@ -129,17 +172,9 @@ from tmp_studien T where T.studiengangs_typ_kb in ('MSG') @@ -129,17 +172,9 @@ from tmp_studien T where T.studiengangs_typ_kb in ('MSG')
and T.status_historie=1
;
select 10,timestamp_str(now()) from xdummy;
--Abmeldungsart studienbezogen:
update tmp_studien_msg set abm_art_s=P.st_abm_art_kurzbezeichnung
from costage_st_personen_abmeldungen P, costage_st_semester S, costage_st_abmeldungsarten A
where S.st_sem_nr=P.st_sem_nr
and S.semester_tid=tmp_studien_msg.semester
and P.st_studium_nr=tmp_studien_msg.st_studium_nr
and A.st_abm_art_kurzbezeichnung=P.st_abm_art_kurzbezeichnung
and A.bezug='S'
;
select 10,timestamp_str(now()) from xdummy;
--wir machen den MSG von einer Zeile zu einer Spalte
--1. Prio TSG hat Primärflag:
@ -148,7 +183,7 @@ select *, @@ -148,7 +183,7 @@ select *,
1::integer as primaerflag,
null::integer as letztes_tsg_semester,
null::integer as st_studium_nr_msg,
null::date as endedat_tsg
null::date as abm_dat_s_tsg
into temp tmp_studien_esg_tsg from tmp_studien T
where T.studiengangs_typ_kb in ('ESG','TSG')
and T.status_historie=1
@ -166,12 +201,32 @@ from tmp_studien T left outer join costage_st_hauptstudien H @@ -166,12 +201,32 @@ from tmp_studien T left outer join costage_st_hauptstudien H
and H.st_studium_nr=T.st_studium_nr
and H.st_sem_nr=T.st_sem_nr)
where T.status_historie=1
<#if K_CO_interpret_primaerflag==1>
and T.studiengangs_typ_kb in ('ESG','TSG')
<#else>
and T.studiengangs_typ_kb in ('ESG')
</#if>
and T.primaerflag_studien=0
;
<#if K_CO_interpret_primaerflag==0>
--Ohne Primärflag::
insert into tmp_studien_esg_tsg
select T.*,
primaerflag_studien as primaerflag,
null::integer as letztes_tsg_semester,
null::integer as st_studium_nr_msg
from tmp_studien T
where T.status_historie=1
and T.studiengangs_typ_kb in ('TSG')
-- and T.primaerflag_studien=0
;
</#if>
update tmp_studien_esg_tsg set st_studium_nr_msg=MSG.st_studium_nr
update tmp_studien_esg_tsg set st_studium_nr_msg=MSG.st_studium_nr
<#if K_CO_interpret_primaerflag==0>
,fach_nr=MTSG.studienfach_sortierung,
primaerflag=(case when fach_nr=1 then 1 else 0 end)
</#if>
from tmp_studien_msg MSG, costage_st_studiengaenge_mtsg MTSG
where tmp_studien_esg_tsg.studiengangs_typ_kb in ('TSG')
and tmp_studien_esg_tsg.semester=MSG.semester
@ -185,8 +240,10 @@ and MSG.primaerflag_studien=1 @@ -185,8 +240,10 @@ and MSG.primaerflag_studien=1
select 20,timestamp_str(now()) from xdummy;
update tmp_studien_esg_tsg set st_studium_nr_msg=MSG.st_studium_nr
from tmp_studien_msg MSG, costage_st_studiengaenge_mtsg MTSG
update tmp_studien_esg_tsg set st_studium_nr_msg=MSG.st_studium_nr <#if K_CO_interpret_primaerflag==0>
,fach_nr=MTSG.studienfach_sortierung
</#if>
from tmp_studien_msg MSG, costage_st_studiengaenge_mtsg MTSG
where tmp_studien_esg_tsg.st_studium_nr_msg is null
and tmp_studien_esg_tsg.studiengangs_typ_kb in ('TSG')
and tmp_studien_esg_tsg.semester=MSG.semester
@ -194,7 +251,7 @@ and tmp_studien_esg_tsg.semester=MSG.semester @@ -194,7 +251,7 @@ and tmp_studien_esg_tsg.semester=MSG.semester
and tmp_studien_esg_tsg.st_studiengang_nr=MTSG.st_studiengang_nr_tsg
and tmp_studien_esg_tsg.st_absz_nr=MSG.st_absz_nr
and MSG.st_studiengang_nr=MTSG.st_studiengang_nr_msg
and MSG.primaerflag_studien=0
and MSG.primaerflag_studien!=1
;
select 30,timestamp_str(now()) from xdummy;
@ -255,18 +312,17 @@ select 50,timestamp_str(now()) from xdummy; @@ -255,18 +312,17 @@ select 50,timestamp_str(now()) from xdummy;
--Abmeldungsart studienbezogen:
update tmp_studien_esg_tsg set abm_art_s=P.st_abm_art_kurzbezeichnung
from costage_st_personen_abmeldungen P, costage_st_semester S, costage_st_abmeldungsarten A
from costage_st_personen_abmeldungen P, costage_st_semester S
where S.st_sem_nr=P.st_sem_nr
and S.semester_tid=tmp_studien_esg_tsg.semester
and P.st_studium_nr=tmp_studien_esg_tsg.st_studium_nr
and A.st_abm_art_kurzbezeichnung=P.st_abm_art_kurzbezeichnung
and A.bezug='S'
and P.person_flag='N'
;
select 55,timestamp_str(now()) from xdummy;
--Endedatum bei TSG nachladen bei Abmeldungen:
update tmp_studien_esg_tsg set endedat_tsg=SA.gueltig_ab
update tmp_studien_esg_tsg set abm_dat_s_tsg=SA.gueltig_ab
from costage_st_studienstatus SA
where SA.st_studium_nr=tmp_studien_esg_tsg.st_studium_nr
and SA.st_sem_nr=tmp_studien_esg_tsg.st_sem_nr
@ -276,12 +332,12 @@ and tmp_studien_esg_tsg.abm_art_s is not null @@ -276,12 +332,12 @@ and tmp_studien_esg_tsg.abm_art_s is not null
select 57,timestamp_str(now()) from xdummy;
update tmp_studien_esg_tsg set endedat=SA.gueltig_ab
update tmp_studien_esg_tsg set abm_dat_s=SA.gueltig_ab
from costage_st_studienstatus SA
where SA.st_studium_nr=tmp_studien_esg_tsg.st_studium_nr
and SA.st_sem_nr=tmp_studien_esg_tsg.st_sem_nr
and SA.studienstatustyp in ('Z','X')
and tmp_studien_esg_tsg.studiengangs_typ_kb='ESG'
and tmp_studien_esg_tsg.studiengangs_typ_kb='ESG' --TODO: auskommentieren, damit auch MSG gesetzt werden
and tmp_studien_esg_tsg.abm_art_s is not null
;
@ -307,6 +363,16 @@ and MTSG.st_studiengang_nr_msg=MSG.st_studiengang_nr @@ -307,6 +363,16 @@ and MTSG.st_studiengang_nr_msg=MSG.st_studiengang_nr
and ETSG.studiengangs_typ_kb in ('TSG');
<#if K_CO_interpret_primaerflag==0>
update tmp_studien_tsg set primaerflag_studien=1
where fach_Nr=1
and primaerflag_studien_msg=1;
update tmp_studien_tsg set studiengang_nr=1
where primaerflag_studien_msg=1;
</#if>
create index tmp_ix3 on tmp_studien(studiengangs_typ_kb);
create index tmp_ix5 on tmp_studien(status_historie);
create index tmp_ix6 on tmp_studien(primaerflag_studien);
@ -314,7 +380,8 @@ create index tmp_ix6 on tmp_studien(primaerflag_studien); @@ -314,7 +380,8 @@ create index tmp_ix6 on tmp_studien(primaerflag_studien);
--statustyp bei TSG aus MSG nachladen:
update tmp_studien_tsg set studienstatustyp=S.studienstatustyp,
studiengangs_identifikator_msg=S.studiengangs_identifikator
studiengangs_identifikator_msg=S.studiengangs_identifikator,
beginn_datum_s=S.beginn_datum_s
from tmp_studien_msg S
where tmp_studien_tsg.st_studiengang_nr_msg=S.st_studiengang_nr
and tmp_studien_tsg.st_studstamm_nr=S.st_studstamm_nr
@ -422,10 +489,12 @@ null::char(10) as statustyp_tsg, @@ -422,10 +489,12 @@ null::char(10) as statustyp_tsg,
null::char(10) as abm_art_s,
null::char(10) as abm_art_s_msg,
T.studienfach_sortierung,
null::timestamp as beginn_datum,
null::timestamp as beginn_datum_s,
null::timestamp as beginn_datum_s_tsg,
null::timestamp AS gueltig_ab,
null::integer as st_studienstatus_nr,
null::integer as primaerflag_studien_msg,
null::integer as st_studium_nr_msg,
max(T.semester) as letztes_tsg_semester,
max(T.fachsemester) as fachsemester,
max(T.praxissemester) as praxissemester,
@ -435,7 +504,7 @@ from tmp_studien_msg_tsg_fehlend F, tmp_studien_tsg T @@ -435,7 +504,7 @@ from tmp_studien_msg_tsg_fehlend F, tmp_studien_tsg T
where F.st_studstamm_nr=T.st_studstamm_nr
and F.st_studiengang_nr_tsg=T.st_studiengang_nr
and T.semester=F.endsemester_tsg
group by 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,23,24,25,26,27,28,29 ,30 ,31,32 ,33 ,34,35,36,37
group by 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,23,24,25,26,27,28,29 ,30 ,31,32 ,33 ,34,35,36,37,38,39
;
update tmp_studien_msg_tsg_fehlend2 set
@ -443,9 +512,11 @@ hssem=S.hssem, @@ -443,9 +512,11 @@ hssem=S.hssem,
statustyp_tsg=S.statustyp_tsg,
abm_art_s=S.abm_art_s,
abm_art_s_msg=S.abm_art_s_msg,
beginn_datum =S.beginn_datum,
beginn_datum_s =S.beginn_datum_s,
beginn_datum_s_tsg =S.beginn_datum_s_tsg,
gueltig_ab=S.gueltig_ab,
st_studienstatus_nr=S.st_studienstatus_nr
st_studienstatus_nr=S.st_studienstatus_nr,
st_studium_nr_msg=S.st_studium_nr_msg
from tmp_studien_tsg S
where S.st_studiengang_nr=tmp_studien_msg_tsg_fehlend2.st_studiengang_nr_tsg
and S.st_studstamm_nr=tmp_studien_msg_tsg_fehlend2.st_studstamm_nr
@ -474,7 +545,8 @@ st_studium_nr, @@ -474,7 +545,8 @@ st_studium_nr,
st_studstamm_nr,
studienstatustyp,
st_studienstatus_nr,
beginn_datum,
beginn_datum_s,
beginn_datum_s_tsg,
gueltig_ab,
matrikelnummer,
geschlecht,
@ -503,7 +575,8 @@ praxissemester, @@ -503,7 +575,8 @@ praxissemester,
klinsem,
studienfach_sortierung,
letztes_tsg_semester,
primaerflag_studien_msg
primaerflag_studien_msg,
st_studium_nr_msg
)
select distinct semester,
semester_anfang,
@ -517,7 +590,8 @@ st_studium_nr, @@ -517,7 +590,8 @@ st_studium_nr,
st_studstamm_nr,
studienstatustyp,
st_studienstatus_nr,
beginn_datum,
beginn_datum_s,
beginn_datum_s_tsg,
gueltig_ab,
matrikelnummer,
geschlecht,
@ -546,7 +620,8 @@ praxissemester, @@ -546,7 +620,8 @@ praxissemester,
klinsem,
studienfach_sortierung,
letztes_tsg_semester,
primaerflag_studien_msg
primaerflag_studien_msg,
st_studium_nr_msg
from tmp_studien_msg_tsg_fehlend2 F, costage_st_studiengaenge G
where G.st_studiengang_nr=F.st_studiengang_nr_msg
;
@ -597,10 +672,12 @@ studiengangs_identifikator, @@ -597,10 +672,12 @@ studiengangs_identifikator,
studiengangs_bezeichnung,
st_sem_nr,
st_studium_nr,
st_studium_nr_msg,
st_studstamm_nr,
studienstatustyp,
st_studienstatus_nr,
beginn_datum,
beginn_datum_s,
beginn_datum_s_tsg,
gueltig_ab,
matrikelnummer,
geschlecht,
@ -635,11 +712,26 @@ null::integer as fach_nr, @@ -635,11 +712,26 @@ null::integer as fach_nr,
null::integer as studiengang_nr,
null::char(10) as unikey,
null::integer as kz_rueck_beur_ein,
endedat,
endedat_tsg
abm_dat_s,
abm_dat_s_tsg
into temp tmp_studien2
from tmp_studien_tsg;
--Wenn TSG automat. generiert sind passt die Nr. des MSG nach einem Fachwechsel nicht mehr,
--daher korrigieren nach der Generierung:
update tmp_studien2 set st_studium_nr_msg=MSG.st_studium_nr from tmp_studien_msg MSG, costage_st_studiengaenge_mtsg MTSG
where tmp_studien2.studiengangs_typ_kb in ('TSG')
and tmp_studien2.semester=MSG.semester
and tmp_studien2.st_studstamm_nr=MSG.st_studstamm_nr
and tmp_studien2.st_studiengang_nr=MTSG.st_studiengang_nr_tsg
and tmp_studien2.st_absz_nr=MSG.st_absz_nr
and MSG.st_studiengang_nr=MTSG.st_studiengang_nr_msg
and tmp_studien2.tsg_generated=1
;
--TODO: SPO auch nachladen
--nun die ESG:
insert into tmp_studien2(semester,
semester_anfang,
@ -653,7 +745,8 @@ st_studium_nr, @@ -653,7 +745,8 @@ st_studium_nr,
st_studstamm_nr,
studienstatustyp,
st_studienstatus_nr,
beginn_datum,
beginn_datum_s,
beginn_datum_s_tsg,
gueltig_ab,
matrikelnummer,
geschlecht,
@ -682,7 +775,7 @@ klinsem, @@ -682,7 +775,7 @@ klinsem,
studienfach_sortierung,
letztes_tsg_semester,
studiengangs_typ_kb,
endedat
abm_dat_s
)
select
semester,
@ -697,7 +790,8 @@ st_studium_nr, @@ -697,7 +790,8 @@ st_studium_nr,
st_studstamm_nr,
studienstatustyp,
st_studienstatus_nr,
beginn_datum,
beginn_datum_s,
beginn_datum_s_tsg,
gueltig_ab,
matrikelnummer,
geschlecht,
@ -726,7 +820,7 @@ klinsem, @@ -726,7 +820,7 @@ klinsem,
1::integer as studienfach_sortierung,
letztes_tsg_semester,
studiengangs_typ_kb,
endedat
abm_dat_s
from tmp_studien_esg_tsg E
where E.studiengangs_typ_kb='ESG';
@ -765,9 +859,21 @@ where H.st_studstamm_nr=tmp_studien2.st_studstamm_nr @@ -765,9 +859,21 @@ where H.st_studstamm_nr=tmp_studien2.st_studstamm_nr
and H.st_sem_nr=tmp_studien2.st_sem_nr
;
<#if K_CO_interpret_primaerflag==1>
update tmp_studien2 set studiengang_nr=1 where primaerflag=1;
<#else>
update tmp_studien2 set studiengang_nr=1 where fach_nr=1
and primaerflag_studien_msg=1;
update tmp_studien2 set studiengang_nr=1 where primaerflag=1
and studiengangs_typ_kb ='ESG'
and studiengang_nr is null;
</#if>
drop table if exists tmp_primaer_msg;
--Wenn Studium mit Primärflag ein TSG ist, wird die studiengang_nr auf alle anderen TSG des MSG ausgedehnt:
select st_studstamm_nr,semester,st_studiengang_nr_msg
@ -778,9 +884,21 @@ and st_studiengang_nr_msg is not null @@ -778,9 +884,21 @@ and st_studiengang_nr_msg is not null
--and primaerflag=1
and primaerflag_studien_msg=1
;
create index tmp_ixz1 on tmp_primaer_msg(st_studstamm_nr);
create index tmp_ixz12 on tmp_primaer_msg(semester);
create index tmp_ixz13 on tmp_primaer_msg(st_studiengang_nr_msg);
--select * from tmp_primaer_msg;
select 145,timestamp_str(now()) from xdummy;
select * into temp tmp_studien3 from tmp_studien2;
create index tmp_ix4443 on tmp_studien3(st_studstamm_nr);
create index tmp_ix4443a on tmp_studien3(semester);
create index tmp_ix4443b on tmp_studien3(studiengang_nr);
update tmp_studien2 set studiengang_nr=1 where primaerflag=0
and studiengangs_typ_kb ='TSG'
and primaerflag_studien_msg=1
@ -790,9 +908,41 @@ where T.st_studstamm_nr=tmp_studien2.st_studstamm_nr @@ -790,9 +908,41 @@ where T.st_studstamm_nr=tmp_studien2.st_studstamm_nr
and T.semester=tmp_studien2.semester
and T.st_studiengang_nr_msg=tmp_studien2.st_studiengang_nr_msg
)
--es kann schon passieren dass ein vorheriger ESG das Primärflag hat,
--während alle generierten TSG kein Primärflag haben können
--daher hier nicht den studiengang_nr=1 nehmen:
and not exists(select T.st_studstamm_nr,T.semester
from tmp_studien3 T
where T.st_studstamm_nr =tmp_studien2.st_studstamm_nr
and T.semester=T.semester
and T.studiengang_nr=1)
;
select 150,timestamp_str(now()) from xdummy;
drop table if exists tmp_studien3;
--zweite Prio: TSG Primärflag
drop table if exists tmp_primaer_msg;
select st_studstamm_nr,semester,st_studiengang_nr_msg
into temp tmp_primaer_msg
from tmp_studien2
where studiengangs_typ_kb ='TSG'
and st_studiengang_nr_msg is not null
and primaerflag=1
;
update tmp_studien2 set studiengang_nr=1 where studiengang_nr is null
and studiengangs_typ_kb ='TSG'
and exists (select st_studiengang_nr_msg
from tmp_primaer_msg T
where T.st_studstamm_nr=tmp_studien2.st_studstamm_nr
and T.semester=tmp_studien2.semester
and T.st_studiengang_nr_msg=tmp_studien2.st_studiengang_nr_msg
)
;
drop table if exists tmp_studien3;
--SPO-Version (letzte im jew. Semester) ermitteln:
@ -806,10 +956,12 @@ studiengangs_identifikator, @@ -806,10 +956,12 @@ studiengangs_identifikator,
studiengangs_bezeichnung,
st_sem_nr,
T.st_studium_nr,
T.st_studium_nr_msg,
st_studstamm_nr,
studienstatustyp,
st_studienstatus_nr,
beginn_datum,
beginn_datum_s,
beginn_datum_s_tsg,
T.gueltig_ab,
matrikelnummer,
geschlecht,
@ -843,17 +995,24 @@ fach_nr, @@ -843,17 +995,24 @@ fach_nr,
studiengang_nr,
unikey,
kz_rueck_beur_ein,
endedat,
endedat_tsg,
null::char(10) as po_stp_stp_version_kb,
abm_dat_s,
abm_dat_s_tsg,
null::varchar(255) as po_stp_stp_version_kb,
null::varchar(255) as po_stp_stp_version_kb_tsg,
null::integer as po_regelstudienzeit,
null::integer as kz_rueck_beur_ein_tsg,
null::integer as kz_rueck_beur_ein_tsg,
null::date as spo_max_gueltig_ab_tsg,
max(SPO.gueltig_ab) as spo_max_gueltig_ab
into temp tmp_studien3
from tmp_studien2 T left outer join costage_st_studien_spoversionen SPO
on (SPO.st_studium_nr=T.st_studium_nr
on (
(
(studiengangs_typ_kb='TSG' and SPO.st_studium_nr=T.st_studium_nr_msg)
or
(studiengangs_typ_kb='ESG' and SPO.st_studium_nr=T.st_studium_nr)
)
and SPO.gueltig_ab < T.semester_ende)
group by 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45 ,46, 47,48 --,49,50,51,52
group by 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45 ,46, 47,48,49,50 --,51,52
;
select 160,timestamp_str(now()) from xdummy;
@ -861,18 +1020,103 @@ select 160,timestamp_str(now()) from xdummy; @@ -861,18 +1020,103 @@ select 160,timestamp_str(now()) from xdummy;
update tmp_studien3 set po_stp_stp_version_kb= SPO.po_stp_stp_version_kb,
po_regelstudienzeit=SPO.po_regelstudienzeit
from costage_st_studien_spoversionen SPO
where SPO.st_studium_nr=tmp_studien3.st_studium_nr
where (
(studiengangs_typ_kb='TSG' and SPO.st_studium_nr=tmp_studien3.st_studium_nr_msg)
or
(studiengangs_typ_kb='ESG' and SPO.st_studium_nr=tmp_studien3.st_studium_nr)
)
and tmp_studien3.spo_max_gueltig_ab =SPO.gueltig_ab;
update tmp_studien3 set kz_rueck_beur_ein_tsg=(select val(astat)
select 162,timestamp_str(now()) from xdummy;
--nun TSG SPO Version
--SPO-Version (letzte im jew. Semester) ermitteln:
select
semester,
semester_anfang,
semester_ende,
st_absz_nr,
st_skz_nr,
studiengangs_identifikator,
studiengangs_bezeichnung,
st_sem_nr,
T.st_studium_nr,
T.st_studium_nr_msg,
st_studstamm_nr,
studienstatustyp,
st_studienstatus_nr,
beginn_datum_s,
beginn_datum_s_tsg,
T.gueltig_ab,
matrikelnummer,
geschlecht,
ca12_staat,
second_nationality,
fachkennzeichen,
studienform_statistik_code,
st_studiengang_nr_msg,
studiengangs_identifikator_msg,
st_studiengang_nr,
hrst,
hssem,
statustyp_tsg,
tsg_generated,
primaerflag,
hzb_art_nr,
hzb_land_sub_r_nr ,
hzb_jahr,
hzb_datum ,
hzb_note,
hzb_land_nr,
abm_art_s,
abm_art_s_msg,
fachsemester,
praxissemester,
klinsem,
studienfach_sortierung,
letztes_tsg_semester,
studiengangs_typ_kb,
fach_nr,
studiengang_nr,
unikey,
kz_rueck_beur_ein,
abm_dat_s,
abm_dat_s_tsg,
T.po_stp_stp_version_kb,
null::varchar(255) as po_stp_stp_version_kb_tsg,
null::integer as po_regelstudienzeit,
null::integer as kz_rueck_beur_ein_tsg,
--null::date as spo_max_gueltig_ab_tsg,
max(SPO.gueltig_ab) as spo_max_gueltig_ab_tsg
into temp tmp_studien4
from tmp_studien3 T left outer join costage_st_studien_spoversionen SPO
on (SPO.st_studium_nr=T.st_studium_nr
and SPO.gueltig_ab < T.semester_ende)
group by 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45 ,46, 47,48,49 ,50 ,51 --,52
;
select 164,timestamp_str(now()) from xdummy;
update tmp_studien4 set po_stp_stp_version_kb_tsg= SPO.po_stp_stp_version_kb
from costage_st_studien_spoversionen SPO
where SPO.st_studium_nr=tmp_studien4.st_studium_nr
and tmp_studien4.spo_max_gueltig_ab_tsg =SPO.gueltig_ab
and tmp_studien4.studiengangs_typ_kb='TSG';
select 166,timestamp_str(now()) from xdummy;
update tmp_studien4 set kz_rueck_beur_ein_tsg=(select val(astat)
from cifx where key=400
and apnr=tmp_studien3.statustyp_tsg
and apnr=tmp_studien4.statustyp_tsg
);
select 170,timestamp_str(now()) from xdummy;
drop table tmp_studien2;
drop table tmp_studien3;
delete from costage_st_studien_aggr
@ -880,18 +1124,20 @@ delete from costage_st_studien_aggr @@ -880,18 +1124,20 @@ delete from costage_st_studien_aggr
where ${COSTAGE_STUDENT_FILTER}
and semester >= ${beginn_semester};
create index ix_tmp_studien2 on tmp_studien3(kz_rueck_beur_ein)
create index ix_tmp_studien2 on tmp_studien4(kz_rueck_beur_ein)
;
insert into costage_st_studien_aggr(
st_studium_nr,
st_studium_nr_tsg,
st_studstamm_nr,
matrikelnummer,
st_studiengang_nr,
st_studiengang_nr_msg,
st_studiengang_nr_tsg,
st_studienstatus_nr,
statustyp,
statustyp_tsg,
tsg_generated,
studiengangs_typ_kb,
hrst,
semester,
fachsemester,
@ -902,10 +1148,11 @@ st_studium_nr, @@ -902,10 +1148,11 @@ st_studium_nr,
studiengang_nr,
fach_nr,
unikey,
anfdat,
beginn_datum_s,
beginn_datum_s_tsg,
ruebeudat,
endedat,
endedat_tsg,
abm_dat_s,
abm_dat_s_tsg,
stufrm,
kz_rueck_beur_ein,
kz_rueck_beur_ein_tsg,
@ -916,22 +1163,30 @@ st_studium_nr, @@ -916,22 +1163,30 @@ st_studium_nr,
hzb_datum,
hzb_note,
abm_art_s,
abm_art_s_msg,
abm_art_s_tsg,
po_stp_stp_version_kb,
po_stp_stp_version_kb_tsg,
po_regelstudienzeit,
studiengangs_identifikator_msg,
studiengangs_identifikator,
studiengangs_identifikator_tsg,
summe
)
select st_studium_nr,
select (case when studiengangs_typ_kb='TSG' then st_studium_nr_msg
else st_studium_nr end) as st_studium_nr,
(case when studiengangs_typ_kb='TSG' then st_studium_nr
else null::integer end) as st_studium_nr_tsg,
st_studstamm_nr,
matrikelnummer,
st_studiengang_nr,
st_studiengang_nr_msg,
(case when studiengangs_typ_kb='TSG' then st_studiengang_nr_msg
else st_studiengang_nr end) as st_studiengang_nr,
(case when studiengangs_typ_kb='TSG' then st_studiengang_nr
else null::integer end) as st_studiengang_nr_tsg,
st_studienstatus_nr,
studienstatustyp,
statustyp_tsg,
tsg_generated,
studiengangs_typ_kb,
hrst,
semester,
fachsemester,
@ -952,15 +1207,16 @@ select st_studium_nr, @@ -952,15 +1207,16 @@ select st_studium_nr,
order by primaerflag desc,fach_nr)
end) as fach_nr,
unikey,
beginn_datum as anfdat,
beginn_datum_s,
beginn_datum_s_tsg,
(case when studienstatustyp not in ('Z','X') then gueltig_ab
else null::date end) as ruebeudat,
(case when endedat is not null then endedat
(case when abm_dat_s is not null then abm_dat_s
when studienstatustyp in ('Z','X') then gueltig_ab
else null::date end) as endedat,
(case when endedat_tsg is not null then endedat_tsg
else null::date end) as abm_dat_s,
(case when abm_dat_s_tsg is not null then abm_dat_s_tsg
when statustyp_tsg in ('Z','X') then gueltig_ab
else null::date end) as endedat_tsg,
else null::date end) as abm_dat_s_tsg,
studienform_statistik_code as stufrm,
kz_rueck_beur_ein,
kz_rueck_beur_ein_tsg,
@ -970,13 +1226,19 @@ select st_studium_nr, @@ -970,13 +1226,19 @@ select st_studium_nr,
hzb_jahr,
hzb_datum,
hzb_note,
abm_art_s,
abm_art_s_msg,
(case when studiengangs_typ_kb='TSG' then abm_art_s_msg
else abm_art_s end) as abm_art_s ,
(case when studiengangs_typ_kb='TSG' then abm_art_s
else null::char(10) end) as abm_art_s_tsg ,
po_stp_stp_version_kb,
po_stp_stp_version_kb_tsg,
po_regelstudienzeit,
studiengangs_identifikator_msg,
(case when studiengangs_typ_kb='TSG' then studiengangs_identifikator_msg
else studiengangs_identifikator end) as studiengangs_identifikator,
(case when studiengangs_typ_kb='TSG' then studiengangs_identifikator
else null::varchar(255) end) as studiengangs_identifikator_tsg,
1 as summe
from tmp_studien3
from tmp_studien4
where kz_rueck_beur_ein is not null
;
@ -984,14 +1246,16 @@ select st_studium_nr, @@ -984,14 +1246,16 @@ select st_studium_nr,
-- from above to accomodate ranking in studiengangNummer field
insert into costage_st_studien_aggr(
st_studium_nr,
st_studium_nr_tsg,
st_studstamm_nr,
matrikelnummer,
st_studiengang_nr,
st_studiengang_nr_msg,
st_studiengang_nr_tsg,
st_studienstatus_nr,
statustyp,
statustyp_tsg,
tsg_generated,
studiengangs_typ_kb,
hrst,
semester,
fachsemester,
@ -1002,10 +1266,11 @@ st_studium_nr, @@ -1002,10 +1266,11 @@ st_studium_nr,
studiengang_nr,
fach_nr,
unikey,
anfdat,
beginn_datum_s,
beginn_datum_s_tsg,
ruebeudat,
endedat,
endedat_tsg,
abm_dat_s,
abm_dat_s_tsg,
stufrm,
kz_rueck_beur_ein,
kz_rueck_beur_ein_tsg,
@ -1016,22 +1281,30 @@ st_studium_nr, @@ -1016,22 +1281,30 @@ st_studium_nr,
hzb_datum,
hzb_note,
abm_art_s,
abm_art_s_msg,
abm_art_s_tsg,
po_stp_stp_version_kb,
po_stp_stp_version_kb_tsg,
po_regelstudienzeit,
studiengangs_identifikator_msg,
studiengangs_identifikator,
studiengangs_identifikator_tsg,
summe
)
select st_studium_nr,
select (case when studiengangs_typ_kb='TSG' then st_studium_nr_msg
else st_studium_nr end) as st_studium_nr,
(case when studiengangs_typ_kb='TSG' then st_studium_nr
else null::integer end) as st_studium_nr_tsg,
st_studstamm_nr,
matrikelnummer,
st_studiengang_nr,
st_studiengang_nr_msg,
(case when studiengangs_typ_kb='TSG' then null::integer
else st_studiengang_nr end) as st_studiengang_nr,
(case when studiengangs_typ_kb='TSG' then st_studiengang_nr
else null::integer end) as st_studiengang_nr_tsg,
st_studienstatus_nr,
studienstatustyp,
statustyp_tsg,
tsg_generated,
studiengangs_typ_kb,
hrst,
semester,
fachsemester,
@ -1053,15 +1326,16 @@ cast (NULL as int) as studiengang_nr2, @@ -1053,15 +1326,16 @@ cast (NULL as int) as studiengang_nr2,
order by primaerflag desc, fach_nr)
end) as fach_nr,
unikey,
beginn_datum as anfdat,
beginn_datum_s,
beginn_datum_s_tsg,
(case when studienstatustyp not in ('Z','X') then gueltig_ab
else null::date end) as ruebeudat,
(case when endedat is not null then endedat
(case when abm_dat_s is not null then abm_dat_s
when studienstatustyp in ('Z','X') then gueltig_ab
else null::date end) as endedat,
(case when endedat_tsg is not null then endedat_tsg
else null::date end) as abm_dat_s,
(case when abm_dat_s_tsg is not null then abm_dat_s_tsg
when statustyp_tsg in ('Z','X') then gueltig_ab
else null::date end) as endedat_tsg,
else null::date end) as abm_dat_s_tsg,
studienform_statistik_code as stufrm,
kz_rueck_beur_ein,
kz_rueck_beur_ein_tsg,
@ -1071,13 +1345,19 @@ cast (NULL as int) as studiengang_nr2, @@ -1071,13 +1345,19 @@ cast (NULL as int) as studiengang_nr2,
hzb_jahr,
hzb_datum,
hzb_note,
abm_art_s,
abm_art_s_msg,
(case when studiengangs_typ_kb='TSG' then abm_art_s_msg
else abm_art_s end) as abm_art_s ,
(case when studiengangs_typ_kb='TSG' then abm_art_s
else null::char(10) end) as abm_art_s_tsg ,
po_stp_stp_version_kb,
po_stp_stp_version_kb_tsg,
po_regelstudienzeit,
studiengangs_identifikator_msg,
(case when studiengangs_typ_kb='TSG' then studiengangs_identifikator_msg
else studiengangs_identifikator end) as studiengangs_identifikator,
(case when studiengangs_typ_kb='TSG' then studiengangs_identifikator
else null::varchar(255) end) as studiengangs_identifikator_tsg,
1 as summe
from tmp_studien3
from tmp_studien4
where kz_rueck_beur_ein is null
;
select 180,timestamp_str(now()) from xdummy;
@ -1104,20 +1384,19 @@ drop table tmp_studien_ohne_studiengangnr_1; @@ -1104,20 +1384,19 @@ drop table tmp_studien_ohne_studiengangnr_1;
select 190,timestamp_str(now()) from xdummy;
--HZB Data:
--Abmeldungsart:
--zuerst personbezogen:
update costage_st_studien_aggr set abm_art_p=P.st_abm_art_kurzbezeichnung
--Abmeldungsart studienbezogen bei TSG:
update costage_st_studien_aggr set abm_art_s=P.st_abm_art_kurzbezeichnung
from costage_st_personen_abmeldungen P, costage_st_semester S
where S.st_sem_nr=P.st_sem_nr
and S.semester_tid=costage_st_studien_aggr.semester
and P.st_studstamm_nr=costage_st_studien_aggr.st_studstamm_nr
and P.person_flag='J'
and P.st_studium_nr=costage_st_studien_aggr.st_studium_nr
and P.person_flag='N'
and costage_st_studien_aggr.studiengangs_typ_kb='TSG'
and costage_st_studien_aggr.semester >= ${beginn_semester}
;
select 200,timestamp_str(now()) from xdummy;
--Beurlaubungs-Art:
@ -1160,10 +1439,24 @@ and A.st_adresse_typ='H' @@ -1160,10 +1439,24 @@ and A.st_adresse_typ='H'
and costage_st_studien_aggr.semester >= ${beginn_semester}
;
--Studiengangs-TID ermitteln:
update costage_st_studien_aggr set studiengang_tid=D.tid
from costage_dim_studiengang D
where D.st_studiengang_nr=costage_st_studien_aggr.st_studiengang_nr
and costage_st_studien_aggr.studiengangs_typ_kb='ESG';
update costage_st_studien_aggr set studiengang_tid= D.tid
from costage_dim_studiengang D
where D.st_studiengang_nr=costage_st_studien_aggr.st_studiengang_nr_tsg
and costage_st_studien_aggr.studiengangs_typ_kb='TSG';
select 300,timestamp_str(now()) from xdummy;
drop table tmp_studien3;
drop table tmp_studien4;
drop table tmp_primaer_msg;

1399
src-modules/module/costage/hilfstabellen/costage_st_studien_aggr_fuellen_mit_primerflag.sql

File diff suppressed because it is too large Load Diff

1093
src-modules/module/costage/hilfstabellen/costage_st_studien_aggr_fuellen_ohne_primerflag.sql

File diff suppressed because it is too large Load Diff

6
src-modules/module/costage/masken/43040_maskeninfo.unl

@ -69,8 +69,8 @@ SELECT name,\ @@ -69,8 +69,8 @@ SELECT name,\
/* and semester <= <<Bis Semester>> */\
/* AND fachsemester <= <<bis Fachsemester>> */\
/* and statustyp in(<<Status>>) */\
/* and costage_st_studien_aggr.st_studiengang_nr in (select G.st_studiengang_nr from costage_st_studiengaenge G where G.abschluss in (<<Abschluss>>)) */\
/* and costage_st_studien_aggr.st_studiengang_nr in (select G.st_studiengang_nr from costage_st_studiengaenge G where G.skz_key in (<<Fach>>)) */\
/* and costage_st_studien_aggr.studiengang_tid in (select G.tid from costage_dim_studiengang G where G.abschluss_code in (<<Abschluss>>)) */\
/* and costage_st_studien_aggr.studiengang_tid in (select G.tid from costage_dim_studiengang G where G.skz_key in (<<Fach>>)) */\
/* and studiengang_nr =<<Studiengang-Nr.>> */\
/* and fach_nr =<<Fach-Nr.>> */\
/* and costage_st_studien_aggr.st_studstamm_nr in (select S.st_studstamm_nr from costage_st_studierendenstammdaten S where S.st_land1_nr in (<<Staatsangehörigkeit>>) ) */\
@ -84,7 +84,7 @@ SELECT name,\ @@ -84,7 +84,7 @@ SELECT name,\
</#if>\
\
\
/* <#assign filter = filter + " and 's_' || costage_st_studien_aggr.st_studiengang_nr in "+Studiengang.allNeededKeysList /> --<<Studiengang>> */ \
/* <#assign filter = filter + " and costage_st_studien_aggr.studiengang_tid in (select D.tid from costage_dim_studiengang D where 's_' ||D.st_studiengang_nr in "+Studiengang.allNeededKeysList +")" /> --<<Studiengang>> */ \
\
\
<@generate_resultset_multitable tabellen=table_list\

130
src-modules/module/costage/masken/43080_maskeninfo.unl

@ -9,65 +9,57 @@ @@ -9,65 +9,57 @@
<#include "SQL_multitable_output"/>\
\
<sqlvars>\
<sqlvar name="get_tables"><![CDATA[\
SELECT distinct name,name\
<sqlvar name="basetable" ><![CDATA[\
SELECT distinct name\
from sx_tables\
where name in ('costage_st_pruef_aggr'\
where name in ('costage_st_pruef_aggr');]]>\
</sqlvar>\
<sqlvar name="getJoinTables" type="hashsequence"><![CDATA[\
SELECT distinct name\
from sx_tables\
where name in (''\
${DatenblattTables(<<tablestylesheet>>,"<<Weitere Tabellen>>",.vars["Weitere TabellenObject"].allKeys)}\
\
)\
order by 2;]]>\
order by 1;]]>\
</sqlvar>\
<sqlvar name="get_table_joins"><![CDATA[\
select table_name || '.' || name || '=' || foreignkey_tab || '.' || foreignkey_col,table_name \
from sx_fields where table_name in ('costage_st_pruef_aggr'\
<sqlvar name="getJoinWhereClauses" type="hashsequence"><![CDATA[\
select table_name || '.' || name || '=' || foreignkey_tab || '.' || foreignkey_col as condition,\
table_name ,\
foreignkey_tab\
from sx_fields where table_name in ('${basetable}'\
${DatenblattTables(<<tablestylesheet>>,"<<Weitere Tabellen>>",.vars["Weitere TabellenObject"].allKeys)} )\
and foreignkey_tab in ('costage_st_pruef_aggr'\
and foreignkey_tab in ('-xy'\
${DatenblattTables(<<tablestylesheet>>,"<<Weitere Tabellen>>",.vars["Weitere TabellenObject"].allKeys)})\
;]]>\
</sqlvar>\
<sqlvar name="get_felder"><![CDATA[\
<sqlvar name="getSelectClause" type="hashsequence"><![CDATA[\
SELECT name,\
caption,\
(trim(field_type) || '#' || is_primarykey || '#' || trim(string_not_null(foreignkey_tab)) || '#' || trim(string_not_null(foreignkey_col))\
|| '#' || trim(string_not_null(foreignkey_cap))\
|| '#' || trim(string_not_null(foreignkey_cond))\
|| '#' || trim(string_not_null(foreignkey_func))\
|| '#' || trim(string_not_null(table_name))\
|| '#' || trim(string_not_null(foreignkey_uniquename)))::char(255) as strukturStr\
field_type,\
is_primarykey,\
foreignkey_tab,\
foreignkey_col,\
foreignkey_cap,\
foreignkey_cond,\
foreignkey_func,\
table_name,\
foreignkey_uniquename\
from sx_fields\
where table_name in ('costage_st_pruef_aggr'\
where table_name in ('${basetable}'\
${DatenblattTables(<<tablestylesheet>>,"<<Weitere Tabellen>>",.vars["Weitere TabellenObject"].allKeys)}\
)\
and currentlyused=1\
${DatenblattFields(<<tablestylesheet>>,"<<Felder>>",FelderObject.allKeys)}\
order by 2,3;]]>\
</sqlvar>\
<sqlvar name="get_felder_fk"><![CDATA[\
SELECT name,\
caption,\
(trim(table_name)\
|| '#' || trim(string_not_null(foreignkey_tab))\
|| '#' || trim(string_not_null(foreignkey_uniquename)))::char(255) as strukturStr\
from sx_fields\
where table_name in ('costage_st_pruef_aggr' ${DatenblattTables(<<tablestylesheet>>,"<<Weitere Tabellen>>",.vars["Weitere TabellenObject"].allKeys)}\
)\
and currentlyused=1\
${DatenblattFields(<<tablestylesheet>>,"<<Felder>>",FelderObject.allKeys)}\
order by 2,3;]]>\
</sqlvar>\
</sqlvars>\
\
<@generate_multitable_list />\
<@generate_field_list_multitable aggregationsfeld="summe" aggregatfunktion="sum(" />\
<@generate_foreign_fields_multitable />\
\
\
<#assign filter="\
/* and hrst in (<<Hörerstatus>>) */\
/* AND leistungsdetailtyp_kb in (<<Leistungsdetailtyp>>) */\
/* and leistungsstatus_map_kb in(<<Prüfungsstatus>>) */\
/* and costage_st_pruef_aggr.st_studiengang_nr in (select G.st_studiengang_nr from costage_st_studiengaenge G where G.abschluss in (<<Abschluss>>)) */\
/* and costage_st_pruef_aggr.studiengang_tid in (select G.tid from costage_dim_studiengang G where G.abschluss_code in (<<Abschluss>>)) */\
/* and studiengang_nr =<<Studiengang-Nr.>> */\
/* and fach_nr =<<Fach-Nr.>> */\
/* and costage_st_pruef_aggr.st_studstamm_nr in (select S.st_studstamm_nr from costage_st_studierendenstammdaten S where S.st_land1_nr in (<<Staatsangehörigkeit>>) ) */\
@ -75,15 +67,18 @@ SELECT name,\ @@ -75,15 +67,18 @@ SELECT name,\
/* and costage_st_pruef_aggr.unikey=<<Hochschule>> */\
" />\
\
/* <#assign filter = filter + " and costage_st_pruef_aggr.studiengang_tid in (select D.tid from costage_dim_studiengang D where 's_' ||D.st_studiengang_nr in "+Studiengang.allNeededKeysList +")" /> --<<Studiengang>> */ \
\
\
<#if "<<Matrikel-Nr.>>"!="">\
<#assign filter=filter+" and costage_st_pruef_aggr.matrikelnummer in (<<Matrikel-Nr.>>)"?replace("'","")/>\
</#if>\
/* <#assign filter = filter + " and 's_' || costage_st_pruef_aggr.st_studiengang_nr in "+Studiengang.allNeededKeysList /> --<<Studiengang>> */ \
\
<#assign postprocessing="" />\
\
--Feld Auswertungsebene Prüfungen\
--Was wird ausgewertet? Welche Leistungsdetailtypen sin betroffen? Welches Prüfungsdatum/Semester soll ausgewertet werden?\
--G=Gesamtabschluss=BAKN, MAGN, STEX, ERGAB Prüfungsdatum/Semester\
--G=Gesamtabschluss='BAKN','MAGN','STEX','ERGAB','RIGZP' Prüfungsdatum/Semester\
--F=Absolvent*innenfachfälle=TSAB Prüfungsdatum/Semester des MSG\
--T=Teilstudienabschluss=TSAB Prüfungsdatum/Semester\
\
@ -92,24 +87,27 @@ SELECT name,\ @@ -92,24 +87,27 @@ SELECT name,\
\
<#assign fach_filter="1=1" />\
--Default: \
/* <#assign fach_filter="costage_st_pruef_aggr.st_studiengang_nr in (select G.st_studiengang_nr from costage_st_studiengaenge G where G.skz_key in (<<Fach>>)) "/> \
/* <#assign fach_filter="costage_st_pruef_aggr.studiengang_tid in (select G.tid from costage_dim_studiengang G where G.skz_key in (<<Fach>>)) "/> \
*/\
\
\
\
<#assign ldt_filter="1=1" />\
<#if <<Auswertungsebene Prüfungen>>=="G">\
<#assign ldt_filter="leistungsdetailtyp_kb in ('BAKN', 'MAGN', 'STEX', 'ERGAB')" />\
<#assign semester_feld="semester_msg" />\
<#assign ldt_filter="leistungsdetailtyp_kb in ('BAKN','MAGN','STEX','ERGAB','RIGZP')" />\
<#assign semester_feld="semester" />\
\
\
\
</#if> \
<#if <<Auswertungsebene Prüfungen>>=="F">\
<#assign ldt_filter="leistungsdetailtyp_kb in ('TSAB')" />\
<#assign semester_feld="semester_msg" />\
<#if <<Auswertungsebene Prüfungen>>=="F"> --\
<#assign ldt_filter="(leistungsdetailtyp_kb in ('TSAB') or (leistungsdetailtyp_kb in ('BAKN','MAGN','STEX','ERGAB','RIGZP') and "+basetable+".studiengangs_typ_kb!='MSG'))" />\
<#assign ldt_filter=ldt_filter+" and leistungsstatus_map_kb = 'BE' and ((leistungsdetailtyp_kb in ('TSAB') and leistungsstatus_map_kb_tsg = 'BE') or "+basetable+".studiengangs_typ_kb='ESG')" />\
<#assign semester_feld="semester" />\
</#if> \
<#if <<Auswertungsebene Prüfungen>>=="T">\
<#assign ldt_filter="leistungsdetailtyp_kb in ('TSAB')" />\
<#assign semester_feld="semester_tsg" />\
</#if> \
\
\
@ -119,47 +117,31 @@ SELECT name,\ @@ -119,47 +117,31 @@ SELECT name,\
\
<#assign filter=filter+" and "+ldt_filter + " and " + semester_filter +" and " + fach_filter />\
\
<@generate_resultset_multitable tabellen=table_list\
p_show_keys=<<Schlüssel anzeigen>>\
p_field_list_select=field_list_select\
p_foreign_fields=foreign_fields\
p_filter=filter\
p_field_list_groupby=field_list_groupby\
p_join_clause=join_clause\
<@generateDatenblatt \
p_basetable = basetable\
p_joinTables = getJoinTables\
p_joinWhereClauses = getJoinWhereClauses\
p_selectClause = getSelectClause\
p_aggregationsfeld ="summe"\
p_aggregatfunktion = "sum("\
p_filter = filter\
p_show_keys= <<Schlüssel anzeigen>>\
p_postProcessing= postprocessing\
/>^--Freemarker Template \
<sqlvars>\
<sqlvar name="basetable">select 'costage_st_pruef_aggr' from xdummy</sqlvar>\
<sqlvar name="restriction"><![CDATA[\
<#assign restrict=DatenblattTables(<<tablestylesheet>>,"<<Weitere Tabellen>>",.vars["Weitere TabellenObject"].allKeys)/>;\
select '${restrict?replace("\\x0027","\\x0027\\x0027")}' from xdummy;]]>\
</sqlvar>\
<sqlvar name="get_felder"><![CDATA[\
SELECT caption,\
foreignkey_tab,\
description as strukturStr\
from sx_fields\
where table_name in ('${basetable}'\
${restriction}\
)\
and currentlyused=1\
${DatenblattFields(<<tablestylesheet>>,"<<Felder>>",FelderObject.allKeys)}\
order by 1;]]>\
</sqlvar>\
</sqlvars>\
XIL List\
sizable_columns horizontal_scrolling\
white_space_color=COLOR_WHITE fixed_columns=1\
min_heading_height=35\
<#assign i=1 />\
<#if get_felder?has_content >\
<#foreach myfield in get_felder>\
<#if getSelectClause?has_content >\
<#foreach myfield in getSelectClause>\
<#assign i=i+1 />\
Column CID=${i} heading_text="${myfield.key}" explanation="${myfield.strukturStr}" center_heading\
Column CID=${i} heading_text="${myfield.caption}" explanation="" center_heading\
row_selectable col_selectable rightJust heading_platform readonly\
width=20\
<#if myfield.name != '' && <<Schlüssel anzeigen>>==1>\
<#if myfield.foreignkey_tab != '' && <<Schlüssel anzeigen>>==1>\
<#assign i=i+1 />\
Column CID=${i} heading_text="${myfield.key}\\n(Schlüssel)" explanation="Schlüssel des Feldes ${myfield.key}" center_heading\
Column CID=${i} heading_text="${myfield.caption}\\n(Schlüssel)" explanation="" center_heading\
row_selectable col_selectable rightJust heading_platform readonly\
width=20\
</#if>\

4
src-modules/module/costage/rohdaten/COSTAGE_ENV.sam

@ -2,7 +2,7 @@ @@ -2,7 +2,7 @@
#Entladeumgebung für SuperX
#Die folgenden Parameter müssen angepasst werden
VERSION=232
VERSION=233
export VERSION
# SX_CLIENT ist die Client-Anwendung zum Zugriff auf die DB
@ -27,6 +27,8 @@ COSTAGE_start_lv_sem=20001 @@ -27,6 +27,8 @@ COSTAGE_start_lv_sem=20001
export COSTAGE_start_lv_sem
COSTAGE_start_hssem=20001
export COSTAGE_start_hssem
COSTAGE_unload_einzpruef=false
export COSTAGE_unload_einzpruef
##Pfad für Entladedaten:
#COSTAGE_LOAD_PFAD=.

82
src-modules/module/costage/rohdaten/costage_unload.xml

@ -1,6 +1,6 @@ @@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<superx-unload version="4.0">
<module id="costage" version="0.4b" systeminfo_id="310">COSTAGE-Modul</module>
<module id="costage" version="0.8b" systeminfo_id="310">COSTAGE-Modul</module>
<parameters>
<param name="VERSION" defaultValue="2" description="Datenbank-Version"><comment>CO-Version, wird derzeit ignoriert</comment></param>
@ -9,7 +9,9 @@ @@ -9,7 +9,9 @@
<param name="COSTAGE_start_leistungen_sem" defaultValue="19911" description="Startsemester Prüfungen"><comment>Ab welchem Semester sollen Leistungen entladen werden? z.B. 20011 für SS 2001</comment></param>
<param name="COSTAGE_start_lv_sem" defaultValue="19911" description="Startsemester Lehrveranstaltungen"><comment>Ab welchem Semester sollen Lehrveranstaltungen entladen werden? z.B. 20011 für SS 2001</comment></param>
<param name="COSTAGE_start_hssem" defaultValue="19911" description="Startsemester Hochschulsemester"><comment>Ab welchem Semester sollen Hochschulsemester entladen werden? z.B. 20011 für SS 2001</comment></param>
</parameters>
<param name="COSTAGE_unload_einzpruef" defaultValue="false" description="Einzelprüfungen" priority="1" sourcesystem="15" wertebereich="ja: true, nein: false" ab_version=">0.8" gruppe="Datenschutzparameter" >
<comment>Wenn COSTAGE_unload_einzpruef = true,dann Einzelprüfungen entladen.</comment></param>
</parameters>
<sourcesystems>
<sourcesystem name="co" description="CampusOnline-Datenbank" default="true"/>
@ -189,6 +191,7 @@ SELECT S.st_sem_nr, @@ -189,6 +191,7 @@ SELECT S.st_sem_nr,
S.semester_anfang,
S.semester_ende,
S.semester_bezeichnung,
S.semester_bezeichnung_en,
S.studienjahr
FROM px_st_semester_v S
where to_number('20' || replace(replace(S.semester_id,'S','1'),'W','2')) >= $COSTAGE_start_st_sem
@ -365,39 +368,7 @@ FROM px_st_studierendenstammdaten_v @@ -365,39 +368,7 @@ FROM px_st_studierendenstammdaten_v
</unload-job>
<unload-job id="px_st_hzb_v" target-table="costage_st_hzb" extraction-script="" transfer-unload-file="unl/costage_st_hzb.unl" >
<comment> </comment>
<extraction-sql sourcesystem="co" database="" version="232">
<![CDATA[ select
nr,
hzb_land_nr,
hzb_land_sub_r_nr,
hzb_art_nr,
hzb_jahr,
hzb_datum,
hzb_note,
st_person_nr,
hzb_note
FROM px_st_hzb_v
;
]]>
</extraction-sql>
<extraction-sql sourcesystem="co" database="" version="233">
<![CDATA[ select
nr,
hzb_land_nr,
hzb_land_sub_r_nr,
hzb_art_nr,
hzb_jahr,
hzb_datum,
hzb_note_numerisch,
st_person_nr,
hzb_note
FROM px_st_hzb_v
;
]]>
</extraction-sql>
<extraction-sql sourcesystem="co" database="" version="234">
<extraction-sql sourcesystem="co" database="" version="">
<![CDATA[ select
nr,
hzb_land_nr,
@ -432,7 +403,9 @@ B.fristbeginn, @@ -432,7 +403,9 @@ B.fristbeginn,
B.fristende,
B.einstiegs_fachsemester,
B.fachsemester_gewaehlt,
B.abgeschickt_datum
B.abgeschickt_datum,
B.storniert_am,
null as storniert_von
FROM px_bw_bewerbungen_v B,px_st_semester_v S
where S.st_sem_nr=B.st_sem_nr
and to_number('20' || replace(replace(S.semester_id,'S','1'),'W','2')) >= $COSTAGE_start_bw_sem
@ -734,7 +707,7 @@ SELECT leistung_nr, @@ -734,7 +707,7 @@ SELECT leistung_nr,
zusatzleistung_flag,
leistungsstatus_nr,
null ,--leistungsstatus_map_kb,
null --abs_fach_st_studium_nr
abs_fach_st_studium_nr
FROM px_leistungen_v
--da das Semester bei Leistungen nicht immer gefuellt ist bzw. der Datum der Leistung nach dem Studium sein kann, hier keine Where Bedingung aufs Startsemester
;
@ -912,7 +885,7 @@ SELECT st_studien_nr, @@ -912,7 +885,7 @@ SELECT st_studien_nr,
text,
datum
FROM px_ergebnisse_v
where 1=0
where '$COSTAGE_unload_einzpruef'='true';
;
]]>
@ -929,9 +902,38 @@ SELECT st_studium_nr, @@ -929,9 +902,38 @@ SELECT st_studium_nr,
stp_knoten_nr_sichtbar,
ghk_nr
FROM px_studienplankontexte_v
where 1=0
;
where '$COSTAGE_unload_einzpruef'='true';
]]>
</extraction-sql>
</unload-job>
<unload-job id="px_knoten_v" target-table="costage_knoten" extraction-script="" transfer-unload-file="unl/costage_knoten.unl" >
<comment>knoten</comment>
<extraction-sql sourcesystem="co" database="" version="">
<![CDATA[
SELECT
nr,
stp_knoten_nr,
stp_stp_nr,
name_de,
name_en,
kennung,
credits,
haupttyp_kurzbezeichnung,
subtyp_kurzbezeichnung,
haupttyp_name,
subtyp_name,
gueltig_von,
gueltig_bis,
teil_des_curriculums,
semesterempfehlung_de,
semesterempfehlung_en,
semesterempfehlung_de_kurz,
semesterempfehlung_en_kurz
from PX_KNOTEN_V
where '$COSTAGE_unload_einzpruef'='true';
]]>
</extraction-sql>
</unload-job>

2
src-modules/module/costage/rohdaten/db-co.properties.sam

@ -3,7 +3,7 @@ driverName=oracle.jdbc.OracleDriver @@ -3,7 +3,7 @@ driverName=oracle.jdbc.OracleDriver
maxIdle=
logLevelXML=FINEST
maxActive=
connectionName=CO_INTERFACE_PX_SUPERX
connectionName=CO_INTERFACE_PUBLIC_EXTERNAL
minIdle=5
logLevelSQL=FINEST
connectionURL=jdbc\:oracle\:thin\:@192.168.0.11\:1521\:coprod

128
src-modules/module/costage/rohdaten_msg/msg_costage_unload.x

@ -0,0 +1,128 @@ @@ -0,0 +1,128 @@
#!/bin/bash
#Extraction Script for SuperX.
#Bitte nicht ändern, diese Datei ist automatisch generiert.
SRC_PFAD=$MSG_LOAD_PFAD
. $SUPERX_DIR/db/bin/SQL_ENV
if [ "$SRC_PFAD" = "" ]
then
SRC_PFAD=.
fi
SX_CLIENT=jdbc
export SX_CLIENT
SOURCESYSTEM=co
export SOURCESYSTEM
if [ "$outFormat" = "" ]
then
outFormat=txt
fi
DATUM=`cat $SRC_PFAD/superx.datum`
ERR=msg_unload.err
cp $SRC_PFAD/superx.datum $SRC_PFAD/superx.datum.alt
##Löschen der alten Dateien
rm $SRC_PFAD/unl/*unl >/dev/null 2>&1
date +'%d.%m.%Y' > $SRC_PFAD/superx.datum ##neues Entladedatum
HEUTE=`date +'%d.%m.%Y'`
cd $SRC_PFAD >>$ERR 2>&1
echo "Letztes Update-Datum: " $DATUM >$ERR
echo "DATABASE: $DATABASE" >>$ERR
echo "VERSION: $VERSION" >>$ERR
echo "SX_CLIENT: $SX_CLIENT" >>$ERR
echo "1.2b^"$HEUTE"^" >$SRC_PFAD/unl/superx_unload_version.unl
CP=".:$JDBC_CLASSPATH:$XML_CLASSPATH"
cat /dev/null >unload_params.txt
if [ "$MSG_UNL_COMPLETE" = "" ]
then
MSG_UNL_COMPLETE="true"
export MSG_UNL_COMPLETE
fi
echo "Parameter MSG_UNL_COMPLETE: $MSG_UNL_COMPLETE" >>$ERR
echo "\$MSG_UNL_COMPLETE=$MSG_UNL_COMPLETE" >>unload_params.txt
if [ "$VERSION" = "" ]
then
VERSION="13"
export VERSION
fi
echo "Parameter VERSION: $VERSION" >>$ERR
echo "\$VERSION=$VERSION" >>unload_params.txt
if [ "$msg_start_pruef_sem" = "" ]
then
msg_start_pruef_sem="19911"
export msg_start_pruef_sem
fi
echo "Parameter msg_start_pruef_sem: $msg_start_pruef_sem" >>$ERR
echo "\$msg_start_pruef_sem=$msg_start_pruef_sem" >>unload_params.txt
if [ "$EXTERNAL_SUBJECTS" = "" ]
then
EXTERNAL_SUBJECTS="false"
export EXTERNAL_SUBJECTS
fi
echo "Parameter EXTERNAL_SUBJECTS: $EXTERNAL_SUBJECTS" >>$ERR
echo "\$EXTERNAL_SUBJECTS=$EXTERNAL_SUBJECTS" >>unload_params.txt
if [ "$SOURCESYSTEM" = "" ]
then
SOURCESYSTEM="co"
export SOURCESYSTEM
fi
echo "Parameter SOURCESYSTEM: $SOURCESYSTEM" >>$ERR
echo "\$SOURCESYSTEM=$SOURCESYSTEM" >>unload_params.txt
#jdbc zum Entladen
if [ "$SX_CLIENT" = "jdbc" ]
then
java $JAVA_OPTS -cp $CP de.superx.bin.SxExtractor -logger:$LOGGER_PROPERTIES -dbproperties:$DB_PROPERTIES -xml:msg_costage_unload.xml -outFormat:$outFormat -delim:$DBDELIMITER -header:$header -database:$DATABASE -version:$VERSION -unload_params:unload_params.txt >>$ERR 2>&1
exit 0
fi
chmod go+r $ERR
chmod go+r $SRC_PFAD/superx.datum
chmod go+r $SRC_PFAD/superx.datum.alt
chmod go+w $SRC_PFAD/superx.datum
chmod go+w $SRC_PFAD/superx.datum.alt
chmod go+r $SRC_PFAD/unl/*
##Herstellen altes Entladedatum bei Fehler
fgrep -s "not found" $ERR >/dev/null
FLAG1=$?
fgrep -i -s "nicht gefunden" $ERR >/dev/null
FLAG2=$?
fgrep -i -s "error" $ERR >/dev/null
FLAG3=$? >/dev/null
fgrep -i -s "exception" $ERR >/dev/null
FLAG4=$? >/dev/null
fgrep -i -s "fehler" $ERR >/dev/null
FLAG5=$? >/dev/null
if [ $FLAG1 -eq 0 -o $FLAG2 -eq 0 -o $FLAG3 -eq 0 -o $FLAG4 -eq 0 -o $FLAG5 -eq 0]
then
echo "Fehler beim Entladen. Das Datum wird zurückgesetzt."
echo "---------------------------------------"
echo "Prüfen Sie Fehlerprotokoll: $ERR"
echo "---------------------------------------"
cp $SRC_PFAD/superx.datum.alt $SRC_PFAD/superx.datum
fi

82
src-modules/module/costage/rohdaten_msg/msg_costage_unload.xml

@ -0,0 +1,82 @@ @@ -0,0 +1,82 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<superx-unload version="4.0">
<module id="msg" version="1.2" systeminfo_id="7">MSG-Modul</module>
<parameters>
<param name="msg_start_pruef_sem" defaultValue="19911" description="Startsemester Prüfungen"><comment>Ab welchem Semester sollen Prüfungen entladen werden? z.B. 20021 für SS 2002</comment></param>
<param name="EXTERNAL_SUBJECTS" defaultValue="false" description="Sollen externe Fächer entladen werden? "><comment> Wenn ja, dann ist der Wert "true", wenn nein, dann ist er "false"</comment></param>
</parameters>
<sourcesystems>
<sourcesystem name="sospos" description="SOSPOS-GX Datenbank" />
<sourcesystem name="hisinone" description="HIS1 Datenbank" default="true"/>
<sourcesystem name="co" description="CampusOnline-Datenbank" />
</sourcesystems>
<unload-job id="sos_abp" extraction-table="" extraction-script="" transfer-unload-file="unl/msg_abp.unl" >
<comment>Verzeichnis der Abschlussprüfungen (CO).</comment>
<extraction-sql sourcesystem="co" database="" version="">
<![CDATA[
SELECT
P.matrikelnummer,
P.studiengang_nr,
P.fach_nr,
G.abschluss_code as abschluss,
--(case when leistungsdetailtyp_kb='TSAB' then P.semester_tsg
--else P.semester end) as semester,
P.semester,
P.leistungsdatum,
(case when P.studiengangs_typ_kb='MSG' and skz_key_abschlussarbeit is not null then skz_key_abschlussarbeit
else G.skz_key end) as stg,
null::integer as vert,
null::integer as schwp,
string_not_null(G.fachkennzeichen),
P.note,
null::char(7), --pruefungsamt_nr
P.abschnitt as pnr,
(case when leistungsdetailtyp_kb='TSAB' then P.po_stp_stp_version_kb_tsg
when P.studiengangs_typ_kb='MSG' and po_stp_stp_version_kb_abschlussarbeit is not null then po_stp_stp_version_kb_abschlussarbeit
else P.po_stp_stp_version_kb end) as pversion,
P.leistungsstatus_map_kb as pstatus,
P.fachsemester,
P.leistungsdetailtyp_kb as part,
(case when leistungsdetailtyp_kb='TSAB' then P.leistung_nr_tsg
else P.leistung_nr end) as leistung_nr,
null::integer as pversuch,
null::char(7)as ppruef1,
null::char(7) as ppruef2,
null::char(7) as malus,
P.credits as bonus,
stp_sp_nr as pordnr,
null::integer as pvermerk,
0::integer as prueck,
G.studiengangs_typ_kb as zeitabschnitt, --term_segment
P.anerkannt_flag as panerk,
null::integer as pstatkennz,
null::CHAR(1), --stuart
G.stufrm,
''::CHAR(1), --stutyp
P.st_studium_nr as degree_program_id,
P.st_studium_nr_tsg as degree_program_id_tsg,
semester_tsg,
leistungsdatum_tsg,
leistungsstatus_map_kb_tsg as pstatus_tsg,
note_tsg,
fachsemester_tsg as fach_sem_zahl_tsg ,
P.studienidentifikator,
P.studienidentifikator_tsg
FROM costage_st_pruef_aggr P, costage_dim_studiengang G
where G.tid=P.studiengang_tid
and ($EXTERNAL_SUBJECTS ='true'
or P.unikey=(select lpad(H.hs_nr::char(10),4,'0') from hochschulinfo H)
)
AND (P.semester >= $msg_start_pruef_sem or P.semester_tsg >= $msg_start_pruef_sem)
;
]]>
</extraction-sql>
</unload-job>
</superx-unload>

1
src-modules/module/costage/rohdaten_msg/superx.datum

@ -0,0 +1 @@ @@ -0,0 +1 @@
23.09.2022

194
src-modules/module/costage/rohdaten_sos/sos_costage_unload.xml

@ -91,7 +91,7 @@ select matrikelnummer, @@ -91,7 +91,7 @@ select matrikelnummer,
d_geburt as gebdat,
'',--gebort,
geschlecht,
d_exmatr as exmdat,
date(abmeldungsdatum) as exmdat,
null::integer as status,
semester_max as semester,
null::integer ,--poplz,
@ -149,7 +149,8 @@ left outer join costage_st_adressen ASEM on (ASEM.st_studstamm_nr=S.st_studstamm @@ -149,7 +149,8 @@ left outer join costage_st_adressen ASEM on (ASEM.st_studstamm_nr=S.st_studstamm
and ASEM.st_adresse_typ='S')
where
matrikelnummer is not null
and semester_max >= $start_stud_sem
and (semester_max >= $start_stud_sem
or semester_max is null)
;
]]>
@ -186,6 +187,8 @@ left outer join costage_st_laender L @@ -186,6 +187,8 @@ left outer join costage_st_laender L
on (L.st_land_nr=H.hzb_land_nr)
where A.hzb_nr=H.hzb_art_nr
and S.st_studstamm_nr=H.st_person_nr
and S.matrikelnummer is not null
]]>
</extraction-sql>
@ -197,19 +200,21 @@ and S.st_studstamm_nr=H.st_person_nr @@ -197,19 +200,21 @@ and S.st_studstamm_nr=H.st_person_nr
<![CDATA[
SELECT
F.matrikelnummer,
G.abschluss,
G.abschluss_code as abschluss,
G.skz_key as stg,
'' ,--vert,
'' ,--schwp,
G.fachkennzeichen,
'' ,--fb,
F.po_stp_stp_version_kb as pversion,
coalesce(po_stp_stp_version_kb_tsg,F.po_stp_stp_version_kb) as pversion,
F.po_stp_stp_version_kb as spoversion,
F.po_stp_stp_version_kb_tsg as pversion_tsg,
F.semester,
F.studiengang_nr,
F.fach_nr,
F.kz_rueck_beur_ein AS status,
F.urlaub_art::char(10) as gdbu,
F.abm_art_p as gdex,
S.abm_art_p as gdex,
F.fachsemester::integer,
F.hrst,
F.klinsem,
@ -217,7 +222,7 @@ F.hssem, @@ -217,7 +222,7 @@ F.hssem,
(case when praxissemester >0 then '3' else '' end) as stuart,
'' ,--stutyp,
F.stufrm,
'' ,--stort,
G.stort_nr ,--stort,
F.ruebeudat,
null::char(1) ,--semgewicht,
null::char(1) ,--stggewicht,
@ -226,37 +231,37 @@ null::char(1) as hssemgewicht, @@ -226,37 +231,37 @@ null::char(1) as hssemgewicht,
null::char(1) as urlsemgewicht,
null::char(1) ,--kohsem,
null::char(1) ,--lfdnr,
F.endedat,
F.anfdat,
F.abm_dat_s,
F.beginn_datum_s,
null::char(1), --lepsem
null::char(1),-- -- district.astat nur h1
null::char(1),-- -- country.astat nur h1
null::char(1) , --Art der Promotion
null::char(1) as field_of_study,
primaerflag as primaerfach,
unikey ,
F.unikey ,
po_regelstudienzeit ,-- individual_number_of_semesters
F.st_studium_nr as degree_program_id ,
null::char(10) as hssem_valid,
null::Char(10) as k_field_of_study_subj_id,
F.kz_rueck_beur_ein_tsg,
endedat_tsg,
(case when G.studiengangs_typ_kb='TSG' then abm_art_s_msg
else abm_art_s end) as abmeldegrund,
(case when G.studiengangs_typ_kb='TSG' then abm_art_s
else null::char(10)
end) as abmeldegrund_tsg,
(case when G.studiengangs_typ_kb='TSG' then F.studiengangs_identifikator_msg
else G.studiengangs_identifikator end) as degree_program_uniquename
FROM costage_st_studiengaenge G, costage_st_studien_aggr F
WHERE G.st_studiengang_nr=F.st_studiengang_nr
abm_dat_s_tsg,
abm_art_s as abmeldegrund,
abm_art_s_tsg as abmeldegrund_tsg,
F.studiengangs_identifikator as degree_program_uniquename,
F.studiengangs_identifikator_tsg as degree_program_uniquename_tsg,
F.st_studium_nr_tsg as degree_program_id_tsg
FROM costage_dim_studiengang G, costage_st_studien_aggr F,
costage_st_studierendenstammdaten S
WHERE S.st_studstamm_nr=F.st_studstamm_nr
and G.tid=F.studiengang_tid
and F.statustyp is not null
and F.fachsemester is not null
and F.kz_rueck_beur_ein is not null
AND F.semester >= $start_stud_sem
and ($EXTERNAL_SUBJECTS ='true'
or F.unikey=(select H.hs_nr::char(10) from hochschulinfo H)
or F.unikey=(select lpad(H.hs_nr::char(10),4,'0') from hochschulinfo H)
or exists(select id from sx_repository R where R.id='COSTAGE_STORT' and aktiv=1)
)
@ -281,16 +286,15 @@ select * from k_stg where 1=0; @@ -281,16 +286,15 @@ select * from k_stg where 1=0;
]]>
</extraction-sql>
</unload-job>
<unload-job id="sos_pruefungen" extraction-table="" extraction-script="" transfer-unload-file="unl/sos_pruefungen.unl" >
<comment>Verzeichnis der Prüfungen.</comment>
<comment>Verzeichnis der Prüfungen (HIS)</comment>
<extraction-sql sourcesystem="co" database="" version="">
<![CDATA[
SELECT
P.matrikelnummer,
P.studiengang_nr,
P.fach_nr,
G.abschluss,
G.abschluss_code as abschluss,
P.semester,
P.leistungsdatum,
G.skz_key as stg,
@ -305,7 +309,8 @@ val(G.pversion), @@ -305,7 +309,8 @@ val(G.pversion),
P.leistungsstatus_map_kb as pstatus,
P.fachsemester ,
P.leistungsdetailtyp_kb as part,
P.leistung_nr,
(case when leistungsdetailtyp_kb='TSAB' then P.leistung_nr_tsg
else P.leistung_nr end) as leistung_nr,
null::integer as pversuch,
null::char(7)as ppruef1,
null::char(7) as ppruef2,
@ -340,11 +345,74 @@ null::char(1) as sem_der_pruefung_exa, @@ -340,11 +345,74 @@ null::char(1) as sem_der_pruefung_exa,
null::char(1) as d_abg_pruefung_exa,
null::char(1) as pstatus_tsg,
null::char(1) as note_tsg,
null::char(1) as fach_sem_zahl_tsg
FROM costage_st_pruef_aggr P, costage_st_studiengaenge G
where G.st_studiengang_nr=P.st_studiengang_nr
null::char(1) as fach_sem_zahl_tsg
FROM costage_st_pruef_aggr P, costage_dim_studiengang G
where G.tid=P.studiengang_tid
AND P.semester >= $start_pruef_sem
;
]]>
</extraction-sql>
</unload-job>
<unload-job id="sos_abp" extraction-table="" extraction-script="" transfer-unload-file="unl/sos_abp.unl" >
<comment>Verzeichnis der Abschlussprüfungen (CO).</comment>
<extraction-sql sourcesystem="co" database="" version="">
<![CDATA[
SELECT
P.matrikelnummer,
P.studiengang_nr,
P.fach_nr,
G.abschluss_code as abschluss,
--(case when leistungsdetailtyp_kb='TSAB' then P.semester_tsg
--else P.semester end) as semester,
P.semester,
P.leistungsdatum,
(case when P.studiengangs_typ_kb='MSG' and skz_key_abschlussarbeit is not null then skz_key_abschlussarbeit
else G.skz_key end) as stg,
null::integer as vert,
null::integer as schwp,
string_not_null(G.fachkennzeichen),
P.note,
null::char(7), --pruefungsamt_nr
P.abschnitt as pnr,
(case when leistungsdetailtyp_kb='TSAB' then P.po_stp_stp_version_kb_tsg
when P.studiengangs_typ_kb='MSG' and po_stp_stp_version_kb_abschlussarbeit is not null then po_stp_stp_version_kb_abschlussarbeit
else P.po_stp_stp_version_kb end) as pversion,
P.leistungsstatus_map_kb as pstatus,
P.fachsemester,
P.leistungsdetailtyp_kb as part,
(case when leistungsdetailtyp_kb='TSAB' then P.leistung_nr_tsg
else P.leistung_nr end) as leistung_nr,
null::integer as pversuch,
null::char(7)as ppruef1,
null::char(7) as ppruef2,
null::char(7) as malus,
P.credits as bonus,
stp_sp_nr as pordnr,
null::integer as pvermerk,
0::integer as prueck,
G.studiengangs_typ_kb as zeitabschnitt, --term_segment
P.anerkannt_flag as panerk,
null::integer as pstatkennz,
null::CHAR(1), --stuart
G.stufrm,
null::CHAR(1), --stutyp
P.st_studium_nr as degree_program_id,
P.st_studium_nr_tsg as degree_program_id_tsg,
semester_tsg,
leistungsdatum_tsg,
leistungsstatus_map_kb_tsg as pstatus_tsg,
note_tsg,
fachsemester_tsg as fach_sem_zahl_tsg ,
P.studienidentifikator,
P.studienidentifikator_tsg
FROM costage_st_pruef_aggr P, costage_dim_studiengang G
where G.tid=P.studiengang_tid
and ($EXTERNAL_SUBJECTS ='true'
or P.unikey=(select lpad(H.hs_nr::char(10),4,'0') from hochschulinfo H)
)
AND (P.semester >= $start_pruef_sem or P.semester_tsg >= $start_pruef_sem)
;
]]>
@ -531,7 +599,7 @@ null as sortorder @@ -531,7 +599,7 @@ null as sortorder
FROM costage_st_studienkennzahlen K left outer join costage_st_studienfaecher F
on ( F.st_stdfach_nr=K.st_stdfach_nr)
where ($EXTERNAL_SUBJECTS ='true'
or unikey=(select H.hs_nr::char(10) from hochschulinfo H)
or unikey=(select lpad(H.hs_nr::char(10),4,'0') from hochschulinfo H)
or exists(select id from sx_repository R where R.id='COSTAGE_STORT' and aktiv=1)
)
@ -584,6 +652,30 @@ null as sortorder @@ -584,6 +652,30 @@ null as sortorder
FROM costage_land_subregionen S, costage_st_land_regionen R
where R.st_land_reg_nr=S.st_land_reg_nr
and R.st_land_nr=56
union
SELECT
90,
0,
fakultaet_key,--apnr,
substring(fakultaet_bezeichnung from 1 for 10) as ktxt,
fakultaet_name as dtxt,
fakultaet_name as ltxt ,
null::char(10) as astat,
null::char(10) as parent,
fakultaet_key, --sortc1
' ',
' ', --sprache
null::date as gueltig_von,
null::date as gueltig_bis,
st_fakultaeten_nr::varchar(255), --sourcesystem_id
null::char(10) , --hiskey_id
fakultaet_key::char(10) , --struktur_c
null as lid,
null as parent_lid,
null as sortorder
FROM costage_st_fakultaeten
where unikey=(select lpad(H.hs_nr::char(10),4,'0') from hochschulinfo H)
union
SELECT distinct
612,
@ -880,7 +972,31 @@ null as lid, @@ -880,7 +972,31 @@ null as lid,
null as parent_lid,
null as sortorder
FROM xdummy
;
union
SELECT
9002,
-1,
leistungsdetailtyp_kb as apnr,
substring(name_de from 1 for 10),--ktxt,
substring(name_de from 1 for 255) as dtxt,
substring(name_de from 1 for 255) as ltxt,
null::char(10) as astat,
null::char(10) as parent,
leistungsdetailtyp_kb,--sortc1 wird später uniquename
' ',
null as sprache,
null::date as gueltig_von,
null::date as gueltig_bis,
leistungsdetailtyp_kb::varchar(255), --sourcesystem_id
(case when leistungsdetailtyp_kb in ('BAKN','MAGN','STEX','ERGAB','RIGZP','TSAB') then '99'
when leistungsdetailtyp_kb in ('AP1','AP2','ZVP','ZW1','SCHW') then '98' else null::char(1) end) as hiskey_id,
'A', --struktur_c
null as lid,
null as parent_lid,
null as sortorder
FROM costage_leistungen_detail_typen
WHERE leistungsdetailtyp_kb is not null
]]>
</extraction-sql>
@ -972,9 +1088,9 @@ SELECT distinct substring(G.studiengangs_identifikator from 1 for 10) ,--abstgv, @@ -972,9 +1088,9 @@ SELECT distinct substring(G.studiengangs_identifikator from 1 for 10) ,--abstgv,
null::integer, -- ects,
G.skz_name
FROM costage_dim_studiengang G, costage_st_studien_aggr A
where A.st_studiengang_nr=G.st_studiengang_nr
where G.tid=A.studiengang_tid
and ($EXTERNAL_SUBJECTS ='true'
or G.unikey=(select H.hs_nr::char(10) from hochschulinfo H)
or G.unikey=(select lpad(H.hs_nr::char(10),4,'0') from hochschulinfo H)
)
]]>
</extraction-sql>
@ -1041,8 +1157,18 @@ select * from k_stg where 1=0; @@ -1041,8 +1157,18 @@ select * from k_stg where 1=0;
</unload-job>
<unload-job id="sos_labzuord" extraction-table="" extraction-script="" transfer-unload-file="unl/sos_labzuord.unl" >
<extraction-sql sourcesystem="co" database="" version="">
<![CDATA[
select * from k_stg where 1=0;
<![CDATA[ select
matrikelnummer as mtknr,
leistung_nr_tsg as labnr,
null::char(1) as artzuordnung,
null::char(1) as pordnrzu,
leistung_nr as labnrzu,
null::char(1) as bonus,
null::char(1) as malus
from costage_st_pruef_aggr
where leistung_nr_tsg != leistung_nr
--AND semester >= $start_pruef_sem
;
]]>
</extraction-sql>
</unload-job>

51
src-modules/module/costage/rohdaten_zul/zul_costage_unload.xml

@ -54,7 +54,7 @@ null,--bew_efh, @@ -54,7 +54,7 @@ null,--bew_efh,
null,--bew_gebort,
date(S.geburtsdatum) as bew_gebdat,
S.geschlecht as geschl,
val(L.statistik_code) as staat,
L.kurzbezeichnung as staat,
null,--pozusatz,
null,--postrasse,
null,--poplz,
@ -158,7 +158,7 @@ null,--bew_efh, @@ -158,7 +158,7 @@ null,--bew_efh,
null, --zvs_ekritpaket_18,
null --zvs_spezkrit
FROM
costage_bw_antr_aggr B left outer join costage_st_studierendenstammdaten_neu S
costage_bw_antr_aggr B left outer join costage_st_studierendenstammdaten S
on (S.st_studstamm_nr=B.st_studstamm_nr)
left outer join
costage_st_laender L
@ -180,6 +180,7 @@ SELECT A.st_studstamm_nr as bewnr, @@ -180,6 +180,7 @@ SELECT A.st_studstamm_nr as bewnr,
G.fachkennzeichen as kzfa,
G.skz_key as stg,
G.abschluss,
null, --schwerpunkt
null,--antr_vert,
null,--antr_stuart,
null,--antr_stutyp,
@ -237,7 +238,7 @@ null::date as zuldat, @@ -237,7 +238,7 @@ null::date as zuldat,
null,-- quotenr,
null,--annfrist,
A.annahme_kz,
null, --antrags_status
case when A.bew_kz='J' then 'G' else 'U' end, --antrags_status
null,--antrf1,
null,--antrf2,
null,--antrf3,
@ -275,12 +276,13 @@ A.nr as satzid, @@ -275,12 +276,13 @@ A.nr as satzid,
null, --B.eingangdat
null, -- pversion
null, --zvs_ekritpaket_01,
null --zvs_ekritpaket_02
null , --zvs_ekritpaket_02
null --updated_admission_relevant_data_at
FROM costage_bw_antr_aggr A, costage_st_studiengaenge G
where A.st_studiengang_nr=G.st_studiengang_nr
and A.bw_typ_kb !='MBW'
and ($EXTERNAL_SUBJECTS ='true'
or A.unikey=(select H.hs_nr::char(10) from hochschulinfo H)
or A.unikey=(select lpad(H.hs_nr::char(10),4,'0') from hochschulinfo H)
or exists(select id from sx_repository R where R.id='COSTAGE_STORT' and aktiv=1)
)
@ -293,7 +295,7 @@ or exists(select id from sx_repository R where R.id='COSTAGE_STORT' and aktiv=1) @@ -293,7 +295,7 @@ or exists(select id from sx_repository R where R.id='COSTAGE_STORT' and aktiv=1)
<comment>hzb-Saetze aus zul</comment>
<extraction-sql sourcesystem="co" database="" version="">
<![CDATA[
SELECT A.st_studstamm_nr as bewnr,
SELECT A.st_studstamm_nr as bewnr,
1 as antrnr,
A.nr as satzid,
A.fach_nr,
@ -301,11 +303,12 @@ SELECT A.st_studstamm_nr as bewnr, @@ -301,11 +303,12 @@ SELECT A.st_studstamm_nr as bewnr,
A.hzb_art,
A.hzb_note,
A.hzb_datum,
(case when A.hzb_staat=0 then 'I' else 'A' end) as hzbkfzkz,
(case when A.hzb_staat=0 then A.hzb_ort else A.hzb_staat end) as hzb_ort,
null, --A.hzbregion,
(case when A.hzb_staat=0 then '0' else '1' end) as hzbkfzkz,
(case when A.hzb_staat=0 then S.statistik_code else A.hzb_staat::varchar(255) end) as hzb_ort,
null::char(1) as hzbregion,
null --A.hzbbes
FROM costage_bw_antr_aggr A
FROM costage_bw_antr_aggr A left outer join costage_land_subregionen S
on (S.land_sub_reg_nr=A.hzb_ort)
where A.bw_typ_kb !='MBW';
]]>
</extraction-sql>
@ -406,7 +409,31 @@ select * from costage_st_studiengaenge where 1=0; @@ -406,7 +409,31 @@ select * from costage_st_studiengaenge where 1=0;
<comment>Schluesseltabelle cifx</comment>
<extraction-sql sourcesystem="co" database="" version="">
<![CDATA[
SELECT
11,
0,
SR.land_sub_reg_nr::char(10),--apnr,
substring(SR.name from 1 for 10) as ktxt,
SR.name as dtxt,
SR.name as ltxt ,
SR.statistik_code as astat,
null::char(10) as parent,
SR.land_sub_reg_nr::varchar(255) as uniquename,
null::integer as sortorder,
R.statistik_code as bland,
' ', --sprache
null::date as gueltig_von,
null::date as gueltig_bis,
SR.land_sub_reg_nr::varchar(255), --sourcesystem_id
null::char(10) , --hiskey_id
'A'::char(10), --struktur_c
null as lid,
null as parent_lid
FROM costage_land_subregionen SR, costage_st_land_regionen R, costage_st_laender L
where L.st_land_nr=R.st_land_nr
and R.st_land_reg_nr=SR.st_land_reg_nr
and L.statistik_code='000'
union
SELECT
30,
0,
@ -430,7 +457,7 @@ null as parent_lid @@ -430,7 +457,7 @@ null as parent_lid
FROM costage_st_studienkennzahlen K left outer join costage_st_studienfaecher F
on ( F.st_stdfach_nr=K.st_stdfach_nr)
where ($EXTERNAL_SUBJECTS ='true'
or unikey=(select H.hs_nr::char(10) from hochschulinfo H)
or unikey=(select lpad(H.hs_nr::char(10),4,'0') from hochschulinfo H)
)
union

122
src-modules/module/costage/schluesseltabellen/costage_dim_studiengang_fuellen.sql

@ -1,7 +1,40 @@ @@ -1,7 +1,40 @@
create temp table tmp_costage_dim_studiengang (tid serial,
tid_orig integer,
st_studiengang_nr integer,
studiengangs_identifikator character varying(255),
studiengangs_bezeichnung character varying(255),
st_absz_nr integer,
st_skz_nr integer,
fachkennzeichen character varying(255),
st_std_art_nr integer,
studiengangs_typ_name character varying(255),
studiengangs_typ_kb character varying(255),
studientyp_name character varying(255),
studientyp_kb character varying(10),
stp_stp_nr integer,
stuart character(10),
stufrm character(10),
pversion character varying(255),
rsz integer,
skz_key character(10),
skz_name character varying(255),
unikey character varying(255),
fakultaet_key character varying(255),
abschluss_code character varying(255),
abschluss_name character varying(255),
fakultaet_kurztext character varying(255),
fakultaet_drucktext character varying(255),
stort_nr character varying(4),
stort_name character varying(255),
ist_neu smallint
);
truncate table costage_dim_studiengang;
insert into costage_dim_studiengang(st_studiengang_nr,
insert into tmp_costage_dim_studiengang(
st_studiengang_nr,
studiengangs_identifikator,
studiengangs_bezeichnung,
st_absz_nr,
@ -26,7 +59,8 @@ insert into costage_dim_studiengang(st_studiengang_nr, @@ -26,7 +59,8 @@ insert into costage_dim_studiengang(st_studiengang_nr,
fakultaet_kurztext,
fakultaet_drucktext,
stort_nr,
stort_name)
stort_name,
ist_neu)
SELECT G.st_studiengang_nr,
substring(G.studiengangs_identifikator from 1 for 255) as studiengangs_identifikator,
@ -54,11 +88,89 @@ A.name as abschluss_name, @@ -54,11 +88,89 @@ A.name as abschluss_name,
null::varchar(255) as fakultaet_kurztext,
null::varchar(255) as fakultaet_drucktext,
G.stort_nr,
G.stort_name
FROM costage_st_studiengaenge G left outer join costage_st_studienkennzahlen SKZ
G.stort_name,
0
FROM costage_st_studiengaenge G left outer join costage_st_studienkennzahlen SKZ
on ( SKZ.st_skz_nr=G.st_skz_nr)
left outer join costage_st_abschlussziele_lokal A on (A.st_absz_nr=G.st_absz_nr);
update tmp_costage_dim_studiengang set tid_orig=D.tid
from costage_dim_studiengang D
where D.st_studiengang_nr=tmp_costage_dim_studiengang.st_studiengang_nr;
update tmp_costage_dim_studiengang set ist_neu=1
where tid_orig is null;
create temp table tmp_hilf(
maxtid integer);
insert into tmp_hilf select max(tid) from costage_dim_studiengang;
update tmp_hilf set maxtid=0 where maxtid is null;
update tmp_costage_dim_studiengang set tid_orig=tid+(select maxtid from tmp_hilf)
where ist_neu=1;
drop table tmp_hilf;
truncate table costage_dim_studiengang;
insert into costage_dim_studiengang(tid,
st_studiengang_nr,
studiengangs_identifikator,
studiengangs_bezeichnung,
st_absz_nr,
st_skz_nr,
fachkennzeichen,
st_std_art_nr,
studiengangs_typ_name,
studiengangs_typ_kb,
studientyp_name,
studientyp_kb,
stp_stp_nr,
stuart,
stufrm,
pversion,
rsz,
skz_key,
skz_name,
unikey,
fakultaet_key,
abschluss_code,
abschluss_name,
fakultaet_kurztext,
fakultaet_drucktext,
stort_nr,
stort_name)
select tid_orig,
st_studiengang_nr,
studiengangs_identifikator,
studiengangs_bezeichnung,
st_absz_nr,
st_skz_nr,
fachkennzeichen,
st_std_art_nr,
studiengangs_typ_name,
studiengangs_typ_kb,
studientyp_name,
studientyp_kb,
stp_stp_nr,
stuart,
stufrm,
pversion,
rsz,
skz_key,
skz_name,
unikey,
fakultaet_key,
abschluss_code,
abschluss_name,
fakultaet_kurztext,
fakultaet_drucktext,
stort_nr,
stort_name
from tmp_costage_dim_studiengang;
update costage_dim_studiengang set fakultaet_kurztext=F.fakultaet_bezeichnung,
fakultaet_drucktext=F.fakultaet_name
from costage_st_fakultaeten F

25
src-modules/module/costage/schluesseltabellen/konstanten_fuellen.sql

@ -98,6 +98,31 @@ beschreibung, @@ -98,6 +98,31 @@ beschreibung,
'Datenquelle, Entladestartzeitpunkt, -umfang',
310);
insert into tmp_konstanten(apnr,
beschreibung,
defaultvalue,
description,
systeminfo_id,
doku_link,
read_only,
wertebereich,
ab_version,
gruppe,
sachgebiete_id)
values (1,
'CO_interpret_primaerflag',
1,
'Primärflag auswerten',
310,
'https://www.superx-projekt.de/doku/costage_modul/admin/f_Konstanten.htm',
1 ,
'1,Ja'|| ${newline} || '0,Nein',
'0.7',
'Datenquelle, Entladestartzeitpunkt, -umfang',
310);
--vorhandene Schlüssel Metadaten updaten:
<#if SQLdialect='Postgres'>

4
src-modules/module/costage/schluesseltabellen/sx_repository.unl

@ -1,6 +1,6 @@ @@ -1,6 +1,6 @@
1^COSTAGE_STUDENT_FILTER^1=1^Filter Studierende für CO^Hier werden Studierende für Auswertungen aus CO gefiltert^^COSTAGE_STUD_FILTER^^^310^1^0^0^^1^01.01.1900^31.12.3000^
2^COSTAGE_STORT^^Standorte^Hier werden Standorte konfiguriert^^COSTAGE_STORT^^^310^1^0^0^^0^01.01.1900^31.12.3000^
2^COSTAGE_LEISTUNGSSTATUS_MAP^case when leistungstyp_nr=1 --reale Prüfung\
3^COSTAGE_LEISTUNGSSTATUS_MAP^case when leistungstyp_nr=1 --reale Prüfung\
and leistungsstatus_nr=1 --in Bearbeitung\
then 'AN' --angemeldet\
when leistungstyp_nr=1 --reale Prüfung\
@ -18,3 +18,5 @@ when note='Q' --keine Beurteilung\ @@ -18,3 +18,5 @@ when note='Q' --keine Beurteilung\
then 'NE' --nicht erschienen\
else 'BE' --bestanden\
end^Leistungsstatus-Gruppen (CO)^Hier werden Leistungsstatus-Gruppen (CO) konfiguriert. Beispiel der UZK für sx_leistungen_v^^COSTAGE_LEISTUNGSSTATUS^^^310^1^0^0^^1^01.01.1900^31.12.3000^
4^COSTAGE_STUDIENSTATUS_FILTER^studienstatustyp not in ('a','o','z')^Filter Studienstatus für CO^Hier werden Studienstatus-Typen für Auswertungen aus CO gefiltert^^COSTAGE_STUD_STATUS_FILTER^^^310^1^0^0^^1^01.01.1900^31.12.3000^
5^COSTAGE_BEW_EINSCHR_FILTER^status_evs='J'^Filter Bewerbungsstatus Einschreibung für CO^Hier werden Bewerbungsstatus-Typen für Auswertungen aus CO gefiltert^^COSTAGE_BEW_STATUS_FILTER^^^310^1^0^0^^1^01.01.1900^31.12.3000^

53
src-modules/module/costage/schluesseltabellen/trans_costage_st_studienkennzahlen.sql

@ -1,8 +1,4 @@ @@ -1,8 +1,4 @@
--freemarker template
<#if COSTAGE_STORT?exists && COSTAGE_STORT !="">
<#assign inlineTemplate=COSTAGE_STORT?interpret />
<@inlineTemplate/>
</#if>
delete from costage_st_studienkennzahlen;
@ -23,38 +19,19 @@ S.fakultaet_key, @@ -23,38 +19,19 @@ S.fakultaet_key,
S.skz_name,
S.st_stdfach_nr,
S.gesetzliche_grundlage_kb
FROM costage_st_studienkennzahlen_neu S, hochschulinfo H
where H.hs_nr::char(10)=S.unikey or S.unikey is null
or 1=0
<#if stort?exists>
<#foreach st in stort>
or S.unikey ='${st.nr}'
</#foreach>
</#if>
;
<#if stort?exists == false>
FROM costage_st_studienkennzahlen_neu S
;
--Duplikatssuche bei Fächern ("skz_key").
select
S.skz_key
into temp tmp_doppelt
from costage_st_studienkennzahlen S
group by 1
having count(*)>1;
update costage_st_studienkennzahlen set skz_key=skz_key || '_' || unikey
where skz_key in (select skz_key
from tmp_doppelt);
drop table tmp_doppelt;
--wg. Eindeutigkeit kombinierter Schlüssel SKZ+UNIKEY:
insert into costage_st_studienkennzahlen(
st_skz_nr,
skz_key,
unikey,
fakultaet_key,
skz_name,
st_stdfach_nr,
gesetzliche_grundlage_kb
)
select
S.st_skz_nr,
trim(S.skz_key) ||'_' || trim(S.unikey),
S.unikey,
S.fakultaet_key,
S.skz_name,
S.st_stdfach_nr,
S.gesetzliche_grundlage_kb
FROM costage_st_studienkennzahlen_neu S, hochschulinfo H
where H.hs_nr::char(10)!=S.unikey
;
</#if>
--TODO: Duplikatssuche bei Fächern ("skz_key").

8
src-modules/module/costage/upgrade/costage_pre_upgrade_pg.sql

@ -0,0 +1,8 @@ @@ -0,0 +1,8 @@
--freemarker template
<#if TableFieldExists?exists && TableFieldExists('costage_dim_studiengang','tid')>
--do nothing
<#else>
drop table if exists costage_dim_studiengang cascade;
</#if>

22
src-modules/module/costage/upgrade/costage_upgrade_man.sql

@ -11,9 +11,31 @@ alter table costage_bw_bewerb_hzb alter column hzb_punkte_max type float; @@ -11,9 +11,31 @@ alter table costage_bw_bewerb_hzb alter column hzb_punkte_max type float;
alter table costage_leistungen alter column note_zahl type float;
alter table costage_leistungen alter column credits type float;
alter table costage_leistungen alter column semesterstunden type float;
alter table costage_leistungen alter column matrikelnummer type integer using val(matrikelnummer)::integer;
ALTER TABLE costage_st_studierendenstammdaten
ALTER COLUMN matrikelnummer drop not null;
ALTER TABLE costage_st_studierendenstammdaten
drop column if exists d_exmatr;
ALTER TABLE costage_st_studien_aggr
drop column if exists endedat;
ALTER TABLE costage_st_studien_aggr
drop column if exists endedat_tsg;
ALTER TABLE costage_st_studien_aggr
drop column if exists abm_art_p;
ALTER TABLE costage_st_studien_aggr
drop column if exists anfdat;
ALTER TABLE costage_st_studien_aggr
ALTER COLUMN st_studium_nr drop not null;
ALTER TABLE costage_st_pruef_aggr
ALTER COLUMN st_studium_nr drop not null;
ALTER TABLE costage_st_pruef_aggr
ALTER COLUMN leistung_nr drop not null;
alter table costage_ergebnisse alter column zahl type float;
</#if>

Loading…
Cancel
Save