Browse Source

Geschlossene TSG Korrektur bei abweichenden MSG ergänzen/Statusupdate #3

COStage_0.3_Release
Daniel Quathamer 2 years ago
parent
commit
1c476a43ed
  1. 10
      src-modules/module/costage/conf/costage.xml
  2. 67
      src-modules/module/costage/costage_update.x
  3. 53
      src-modules/module/costage/hilfstabellen/costage_st_studien_aggr_fuellen.sql
  4. 10
      src-modules/module/costage/rohdaten/costage_unload.xml
  5. 24
      src-modules/module/costage/rohdaten/sos_costage_unload.xml
  6. 14
      src-modules/module/costage/schluesseltabellen/konstanten_fuellen.sql

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

@ -129,6 +129,8 @@ rightname="CS_BIA_STANDARDREPORTS_ADMIN[CO]" /> @@ -129,6 +129,8 @@ rightname="CS_BIA_STANDARDREPORTS_ADMIN[CO]" />
<column name="adresse" type ="CHAR" size ="1" default ="" notnull ="false" />
<column name="hzb" type ="CHAR" size ="1" default ="" notnull ="false" />
<column name="staatsbuergerschaft" type ="CHAR" size ="1" default ="" notnull ="false" />
<column name="kfz_kennzeichen" type ="CHAR" size ="10" default ="" notnull ="false" />
</columns>
<indexes></indexes>
<primaryKeys><rs>
@ -144,6 +146,7 @@ rightname="CS_BIA_STANDARDREPORTS_ADMIN[CO]" /> @@ -144,6 +146,7 @@ rightname="CS_BIA_STANDARDREPORTS_ADMIN[CO]" />
<column name="name" type ="VARCHAR" size ="100" default ="" notnull ="true" />
<column name="statistik_code" type ="VARCHAR" size ="5" default ="" notnull ="false" />
<column name="st_land_nr" type ="INTEGER" size ="8" default ="" notnull ="true" />
<column name="kfz_kennzeichen_region" type ="INTEGER" size ="8" default ="" notnull ="false" />
</columns>
<indexes></indexes>
<primaryKeys><rs>
@ -458,11 +461,11 @@ rightname="CS_BIA_STANDARDREPORTS_ADMIN[CO]" /> @@ -458,11 +461,11 @@ rightname="CS_BIA_STANDARDREPORTS_ADMIN[CO]" />
<comment>Lookup via: st_studstamm_nr - costage_bw_bewerbungen.st_studstamm_nr - costage_bw_bewerbungen.nr - costage_bw_bewerb_hzb.bw_bewrbng_nr - costage_bw_bewerb_hzb.st_land_nr - costage_st_laender.land_nr</comment>
</column>
<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_kurzbezeichung" sourcesystem="co" />
<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_kurzbezeichung" sourcesystem="co" />
<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)" >
@ -1333,6 +1336,7 @@ gueltig_bis DATE @@ -1333,6 +1336,7 @@ gueltig_bis DATE
<loadtable refresh="true" delimiter="^" header="false" tabname="tmp_repository"><file path="$COSTAGE_PFAD/schluesseltabellen/sx_repository.unl"/></loadtable>
</action>
<action>
<nativeaction sql="" scriptfile="$COSTAGE_PFAD/schluesseltabellen/konstanten_fuellen.sql" database=""/>
<nativeaction sql="" scriptfile="$COSTAGE_PFAD/schluesseltabellen/sx_repository_fuellen.sql" database=""/>
<nativeaction sql="" scriptfile="$COSTAGE_PFAD/schluesseltabellen/sachgebiete_fuellen.sql" database=""/>
<nativeaction sql="" scriptfile="$COSTAGE_PFAD/schluesseltabellen/sx_stylesheets_einfuegen.sql" database=""/>
@ -1371,7 +1375,7 @@ gueltig_bis DATE @@ -1371,7 +1375,7 @@ gueltig_bis DATE
<loadtable refresh="true" delimiter="^" header="false" tabname="tmp_repository"><file path="$COSTAGE_PFAD/schluesseltabellen/sx_repository.unl"/></loadtable>
</action>
<action>
<nativeaction sql="" scriptfile="$COSTAGE_PFAD/schluesseltabellen/sx_repository_fuellen.sql" database=""/>
<nativeaction sql="" scriptfile="$COSTAGE_PFAD/schluesseltabellen/konstanten_fuellen.sql" database=""/><nativeaction sql="" scriptfile="$COSTAGE_PFAD/schluesseltabellen/sx_repository_fuellen.sql" database=""/>
<nativeaction sql="" scriptfile="$COSTAGE_PFAD/schluesseltabellen/sachgebiete_fuellen.sql" database=""/>
<nativeaction sql="" scriptfile="$COSTAGE_PFAD/schluesseltabellen/sx_stylesheets_einfuegen.sql" database=""/>
<nativeaction sql="" scriptfile="$COSTAGE_PFAD/schluesseltabellen/cif_fuellen.sql" database=""/>

67
src-modules/module/costage/costage_update.x

@ -0,0 +1,67 @@ @@ -0,0 +1,67 @@
#!/bin/bash
#Arbeitsverzeichnis fuer crontab
PFAD=$2
if [ "$PFAD" != "" ]
then
cd $PFAD
fi
#Umgebung einlesen:
if [ "$COSTAGE_PFAD" = "" ]
then
echo "ACHTUNG: Die Umgebungsvariable COSTAGE_PFAD ist nicht gesetzt. Bitte prüfen Sie $SUPERX_DIR/db/bin/SQL_ENV"
exit 1
fi
if [ "$COSTAGE_ERRORMAIL" != "" ]
then
ERRORMAIL=$COSTAGE_ERRORMAIL
export ERRORMAIL
fi
if [ "$COSTAGE_LOGMAIL" != "" ]
then
LOGMAIL=$COSTAGE_LOGMAIL
export LOGMAIL
fi
if [ "$COSTAGE_BACKUP" != "" ]
then
MODULE_BACKUP=$COSTAGE_BACKUP
export MODULE_BACKUP
fi
#hier geht es los
#runAndCheck.x path command (EXIT_ON_ERROR|CONT_ON_ERROR) (SEND_ERRORMAIL|NO_ERRORMAIL) (SEND_LOGMAIL|NO_LOGMAIL) [description] "
echo "costage-Update startet" >$COSTAGE_ERRORDAT
runAndCheck.x $COSTAGE_PFAD "module_etl.x costage $COSTAGE_PFAD $COSTAGE_LOAD_PFAD" EXIT_ON_ERROR SEND_ERRORMAIL SEND_LOGMAIL "COSTAGE update$MANDANTID"
echo "---------------------------Beginn Prüfroutine-----------------------------------" >>$COSTAGE_ERRORDAT
cat $COSTAGE_PFAD/L_COSTAGE_update$MANDANTID.log >>$COSTAGE_ERRORDAT
pruefmail.x $COSTAGE_PFAD/L_costage_Test$MANDANTID.log $ERRORMAIL
#Bei Fehlern Datum zurücksetzen:
fgrep -s "not found" $COSTAGE_ERRORDAT
FLAG1=$?
fgrep -i -s "error" $COSTAGE_ERRORDAT
FLAG2=$?
fgrep -i -s "nicht gefunden" $COSTAGE_ERRORDAT
FLAG3=$?
fgrep -i -s "fehler" $COSTAGE_ERRORDAT
FLAG4=$?
if [ $FLAG1 -eq 0 -o $FLAG2 -eq 0 -o $FLAG3 -eq 0 -o $FLAG4 -eq 0 ]
then
echo "Fehler beim COSTAGE-Update "
echo "---------------------------------------"
echo "Fehlerprotokoll in $COSTAGE_ERRORDAT"
echo "Das Datum wird zurückgesetzt. Kopieren Sie die Datei superx.datum ggf. auf den COSTAGE-Rechner"
echo "---------------------------------------"
cp $COSTAGE_LOAD_PFAD/superx.datum.alt $COSTAGE_LOAD_PFAD/superx.datum
else
echo "COSTAGE-Update erfolgreich"
fi

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

@ -92,6 +92,12 @@ where tmp_studien.st_studstamm_nr = BW.st_studstamm_nr @@ -92,6 +92,12 @@ where tmp_studien.st_studstamm_nr = BW.st_studstamm_nr
and BW.nr=H.bw_bewrbng_nr
;
create index tmp_ix1 on tmp_studien(st_studiengang_nr);
create index tmp_ix2 on tmp_studien(st_studstamm_nr);
create index tmp_ix3 on tmp_studien(studiengangs_typ_kb);
create index tmp_ix4 on tmp_studien(st_sem_nr);
create index tmp_ix5 on tmp_studien(status_historie);
select T.*,1::smallint as primaerflag
into temp tmp_studien2
@ -116,7 +122,7 @@ on (H.st_studstamm_nr=T.st_studstamm_nr @@ -116,7 +122,7 @@ on (H.st_studstamm_nr=T.st_studstamm_nr
--Ermittlung msg:
--Ermittlung msg bei TSG:
update tmp_studien2 set st_studiengang_nr_msg=M.st_studiengang_nr_msg
from costage_st_studiengaenge_mtsg M, costage_st_studien ST
where ST.st_studiengang_nr=M.st_studiengang_nr_msg
@ -125,6 +131,19 @@ and M.st_studiengang_nr_tsg=tmp_studien2.st_studiengang_nr @@ -125,6 +131,19 @@ and M.st_studiengang_nr_tsg=tmp_studien2.st_studiengang_nr
and tmp_studien2.studiengangs_typ_kb ='TSG'
;
--statustyp bei TSG aus MSG nachladen:
update tmp_studien2 set studienstatustyp=S.studienstatustyp
from tmp_studien S
where tmp_studien2.st_studiengang_nr_msg=S.st_studiengang_nr
and tmp_studien2.st_studstamm_nr=S.st_studstamm_nr
and S.studiengangs_typ_kb ='MSG'
and tmp_studien2.studiengangs_typ_kb ='TSG'
and tmp_studien2.st_sem_nr=S.st_sem_nr
and S.status_historie=1
;
<#if K_COSTAGE_TSG_GENERATE == 1>
--Start- und Endsemester aller MSG pro Student:
@ -162,13 +181,12 @@ and T.studiengangs_typ_kb ='TSG' @@ -162,13 +181,12 @@ and T.studiengangs_typ_kb ='TSG'
drop table if exists tmp_studien_msg_tsg_fehlend;
select T.*
into temp tmp_studien_msg_tsg_fehlend
from tmp_studien_msg_tsg T --enthält alle tsg
left outer join tmp_studien2 T2 --enthält die TSG
from tmp_studien_msg_tsg T --enthält alle möglichen TSG
left outer join tmp_studien2 T2 --enthält die tatsächlich vorhandenen TSG
on (T2.st_studiengang_nr_msg=T.st_studiengang_nr_msg
and T2.st_studiengang_nr=T.st_studiengang_nr_tsg
and T2.st_studstamm_nr=T.st_studstamm_nr
and T2.studiengangs_typ_kb ='TSG'
--and T2.st_studium_nr=T.st_studium_nr
and T.semester=T2.semester)
where T2.st_studstamm_nr is null
;
@ -226,7 +244,7 @@ S.fachkennzeichen, @@ -226,7 +244,7 @@ S.fachkennzeichen,
S.studienform_statistik_code,
S.st_studiengang_nr_msg,
S.st_studiengang_nr_tsg,
S.hrst,
null::char(10) as hrst,--hrst kann im Studienverlauf wechseln, daher nachher vom MSG nachladen
S.hssem,
null::char(10) as statustyp_tsg,
1 as tsg_generated,
@ -246,17 +264,9 @@ and M.semester != S.semester @@ -246,17 +264,9 @@ and M.semester != S.semester
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
;
drop table tmp_studien_msg_tsg_fehlend;
drop table tmp_studien_msg_tsg;
drop table tmp_studien_msg;
</#if>
--------------------------------------------------------------------
--statustyp nachladen:
update tmp_studien2 set studienstatustyp=S.studienstatustyp
--statustyp und hrst nachladen:
update tmp_studien2 set studienstatustyp=S.studienstatustyp,
hrst=S.hrst
from tmp_studien S
where tmp_studien2.st_studiengang_nr_msg=S.st_studiengang_nr
and tmp_studien2.st_studstamm_nr=S.st_studstamm_nr
@ -278,6 +288,17 @@ and tmp_studien2.fachsemester=S.fachsemester @@ -278,6 +288,17 @@ and tmp_studien2.fachsemester=S.fachsemester
;
drop table tmp_studien_msg_tsg_fehlend;
drop table tmp_studien_msg_tsg;
drop table tmp_studien_msg;
</#if>
--------------------------------------------------------------------
drop table tmp_studien;

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

@ -132,7 +132,8 @@ SELECT st_land_nr, @@ -132,7 +132,8 @@ SELECT st_land_nr,
statistik_code,
adresse,
hzb,
null as staatsbuergerschaft
null as staatsbuergerschaft,
kfz_kennzeichen
FROM px_st_laender_v
;
@ -147,7 +148,8 @@ FROM px_st_laender_v @@ -147,7 +148,8 @@ FROM px_st_laender_v
SELECT st_land_reg_nr,
name,
statistik_code,
st_land_nr
st_land_nr,
kfz_kennzeichen_region
FROM px_st_land_regionen_v
;
@ -487,7 +489,7 @@ FROM px_bw_zulassungsarten_v @@ -487,7 +489,7 @@ FROM px_bw_zulassungsarten_v
<comment> </comment>
<extraction-sql sourcesystem="co" database="" version="">
<![CDATA[
SELECT nr,
SELECT land_sub_reg_nr,
name,
statistik_code,
land_kfz_kennzeichen_subregion,
@ -590,7 +592,7 @@ SELECT A.st_person_abmeldung_nr, @@ -590,7 +592,7 @@ SELECT A.st_person_abmeldung_nr,
A.st_studstamm_nr,
A.st_studium_nr,
A.st_sem_nr,
A.st_abm_art_kurzbezeichung,
A.st_abm_art_kurzbezeichnung,
A.person_flag,
A.st_studienstatus_nr
FROM px_st_personen_abmeldungen_v A,px_st_semester_v S

24
src-modules/module/costage/rohdaten/sos_costage_unload.xml

@ -5334,6 +5334,30 @@ null as lid, @@ -5334,6 +5334,30 @@ null as lid,
null as parent_lid,
null as sortorder
FROM costage_st_hoererstatus
union
SELECT distinct
614,
-1,
fachkennzeichen,
fachkennzeichen,--ktxt,
fachkennzeichen,
fachkennzeichen,
null::char(10),
null as parent,
fachkennzeichen,--sortc1 wird später uniquename
' ',
null as sprache,
null as gueltig_von,
null as gueltig_bis,
fachkennzeichen, --sourcesystem_id
' ', --hiskey_id
'A', --struktur_c
null as lid,
null as parent_lid,
null as sortorder
FROM costage_st_studiengaenge
WHERE fachkennzeichen is not null
and trim(fachkennzeichen)!=''
-- union
-- SELECT
-- 622,

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

@ -96,9 +96,13 @@ where T.beschreibung=konstanten.beschreibung)); @@ -96,9 +96,13 @@ where T.beschreibung=konstanten.beschreibung));
delete from tmp_konstanten where beschreibung in (select beschreibung from konstanten);
create temp table tmp_hilf (tid integer);
insert into tmp_hilf select max(tid) from konstanten;
update tmp_hilf set tid=0 where tid is null;
insert into konstanten( apnr ,beschreibung,
insert into konstanten(tid ,
apnr ,beschreibung,
defaultvalue,
description,
systeminfo_id,
@ -108,7 +112,8 @@ insert into konstanten( apnr ,beschreibung, @@ -108,7 +112,8 @@ insert into konstanten( apnr ,beschreibung,
ab_version,
gruppe,
sachgebiete_id )
select K.apnr ,
select H.tid+K.tid ,
K.apnr ,
K.beschreibung,
K.defaultvalue,
K.description,
@ -119,9 +124,8 @@ K.beschreibung, @@ -119,9 +124,8 @@ K.beschreibung,
K.ab_version,
K.gruppe,
K.sachgebiete_id
from tmp_konstanten K,
tmp_hilf H;
from tmp_konstanten K, tmp_hilf H;
drop table tmp_hilf;
drop table tmp_konstanten;

Loading…
Cancel
Save