diff --git a/src-modules/module/sxc/conf/sxc.xml b/src-modules/module/sxc/conf/sxc.xml
index eaa66a6..d8c6885 100644
--- a/src-modules/module/sxc/conf/sxc.xml
+++ b/src-modules/module/sxc/conf/sxc.xml
@@ -937,6 +937,7 @@ parent="SuperX-Connect">Abfragen zur Administration von SuperX-Connect
+
@@ -984,6 +985,7 @@ parent="SuperX-Connect">Abfragen zur Administration von SuperX-Connect
+
diff --git a/src-modules/module/sxc/masken/47000_maskeninfo.unl b/src-modules/module/sxc/masken/47000_maskeninfo.unl
index 5307fe6..5b0b00f 100644
--- a/src-modules/module/sxc/masken/47000_maskeninfo.unl
+++ b/src-modules/module/sxc/masken/47000_maskeninfo.unl
@@ -126,4 +126,4 @@ Column CID=2 heading_text="Studierende nach Nationalität\\000Ausland\\n(graphis
Column CID=3 heading_text="Studierende nach Nationalität\\000Anteil Ausland in %" explanation="" center_heading\
row_selectable col_selectable rightJust heading_platform readonly\
width=8\
-@@@^Semester^Anzahl^je Semester mit Geschlechtsangabe und Prozentwert^drop table tmp_studis2;^-leer-^3^700^360^0^1^<> select distinct 'Quelle: Destatis Tabelle ' || statistik_label || '(' || statistik_code || ')' from sxc_stud_sem_da_geschl_hs^
+@@@^Semester^Anzahl^Studierende je Semester mit Geschlechtsangabe und Prozentwert. Quelle der Daten: @@@destatis_21311@@@^drop table tmp_studis2;^-leer-^3^700^360^0^1^<> select distinct 'Quelle: Destatis Tabelle ' || statistik_label || '(' || statistik_code || ')' from sxc_stud_sem_da_geschl_hs^
diff --git a/src-modules/module/sxc/masken/47030_maskeninfo.unl b/src-modules/module/sxc/masken/47030_maskeninfo.unl
index bebc8d4..455210f 100644
--- a/src-modules/module/sxc/masken/47030_maskeninfo.unl
+++ b/src-modules/module/sxc/masken/47030_maskeninfo.unl
@@ -444,4 +444,4 @@ Column CID=1 heading_text="${spalte.name}" center_heading\
row_selectable heading_platform readonly explanation="Ausprägung ${spalte.name}"\
width=12\
#foreach>\
-@@@^Altersgruppe^Anzahl^Kreuztabellen zu Studierendenzahlen^drop table tmp_erg;drop table tmp_cellmax;^ ^1^700^360^0^1^ ^
+@@@^Altersgruppe^Anzahl^Kreuztabellen zu Studierendenzahlen. Quelle der Daten: @@@destatis_21311@@@^drop table tmp_erg;drop table tmp_cellmax;^ ^1^700^360^0^1^ ^
diff --git a/src-modules/module/sxc/masken/47090_felderinfo.unl b/src-modules/module/sxc/masken/47090_felderinfo.unl
index 97d778c..b7d81d1 100644
--- a/src-modules/module/sxc/masken/47090_felderinfo.unl
+++ b/src-modules/module/sxc/masken/47090_felderinfo.unl
@@ -1,4 +1,4 @@
-47090^Hochschule^10^0^0^100^150^1^char^30^1^12^<> select tid, type, name,sortnr from sichten where art in('SXC-Kostenstellen-Sicht') and aktiv=1 order by sortnr, name;^^ ^
+47090^Hochschule^10^0^0^100^150^1^char^30^0^12^<> select tid, type, name,sortnr from sichten where art in('SXC_Hochschulen-Sicht') and name_intern like 'sxc_hochschulen_nrw%' and aktiv=1 order by sortnr, name;^^ ^
47091^Semester^1^0^0^130^80^1^integer^30^0^1^<> select tid,druck from kenn_semester order by tid DESC;^^<> select tid,druck from kenn_semester where today() between sem_beginn and sem_ende;^
47092^Abschluss^40^0^0^100^200^5^char^30^0^1^<> select astat, dtxt from kenn_abschl_astat where struktur_c='Abschluss (amtlich)' order by 2;^^^
47093^Hochschulart^15^0^0^170^200^1^integer^30^0^1^<> select laufnummer,bezeichnung from sxc_hsk_hochschultypen order by 1^ ^ ^
diff --git a/src-modules/module/sxc/masken/47090_maskeninfo.unl b/src-modules/module/sxc/masken/47090_maskeninfo.unl
index 9ad9af6..0e19e2d 100644
--- a/src-modules/module/sxc/masken/47090_maskeninfo.unl
+++ b/src-modules/module/sxc/masken/47090_maskeninfo.unl
@@ -78,4 +78,4 @@ Column CID=2 heading_text="Studienform" explanation="" center_heading\
Column CID=2 heading_text="Studiumstyp" explanation="" center_heading\
row_selectable col_selectable rightJust heading_platform readonly\
width=8\
-@@@^Semester^Anzahl^je Semester mit Geschlechtsangabe und Prozentwert^ ^-leer-^3^700^360^0^1^Quelle: https://www.it.nrw/system/files/media/document/file/studienfachmerkmalskombination_internetversion.xlsx^
+@@@^Semester^Anzahl^Studienfachs-Merkmalskombinationen NRW, Quelle der Daten: @@@it_nrw.hs_stat@@@^ ^-leer-^3^700^360^0^1^ ^
diff --git a/src-modules/module/sxc/masken/47140_maskeninfo.unl b/src-modules/module/sxc/masken/47140_maskeninfo.unl
index 0d32d6a..da3662e 100644
--- a/src-modules/module/sxc/masken/47140_maskeninfo.unl
+++ b/src-modules/module/sxc/masken/47140_maskeninfo.unl
@@ -477,4 +477,4 @@ Column CID=0 heading_text="sortnr" center_heading explanation=""\
row_selectable heading_platform readonly\
width=5 text_size=60\
#if>\
-@@@^Studienfach^Anzahl bzw. Anteil^Studierende und Anteil weiblicher Studierender als Zeitreihe mit Frauenanteil eigene Hochschule zu anderen Hochschulen^select cleanup_stmt from maskeninfo where tid=48000^^2^850^540^^1^<>SELECT description FROM rpta_column_layout where tid=<>;^
+@@@^Studienfach^Anzahl bzw. Anteil^Studierende und Anteil weiblicher Studierender als Zeitreihe mit Frauenanteil eigene Hochschule zu anderen Hochschulen. Quelle der Vergleichszahlen: @@@destatis_21311@@@^select cleanup_stmt from maskeninfo where tid=48000^^2^850^540^^1^<>SELECT description FROM rpta_column_layout where uniquename=<>;^
diff --git a/src-modules/module/sxc/schluesseltabellen/rpta_column_layout_sxc_stud_geschl_zeitreihe_fuellen.sql b/src-modules/module/sxc/schluesseltabellen/rpta_column_layout_sxc_stud_geschl_zeitreihe_fuellen.sql
index 0e3550d..8f24bb1 100644
--- a/src-modules/module/sxc/schluesseltabellen/rpta_column_layout_sxc_stud_geschl_zeitreihe_fuellen.sql
+++ b/src-modules/module/sxc/schluesseltabellen/rpta_column_layout_sxc_stud_geschl_zeitreihe_fuellen.sql
@@ -10,7 +10,7 @@ select count(*) from systeminfo where tid=330;
"caption":"Studierende nach Geschlecht (Hochschulvergleich)",
"rpta_resultset":"sos_stud_astat",
"whereclause":"",
-"description":"Studierende nach Geschlecht mit Anteil, im Vergleich mit anderen Hochschulen",
+"description":"Studierende nach Geschlecht mit Anteil, im Vergleich mit anderen Hochschulen.",
"sortclause":"sem_rueck_beur_ein desc"
}
/>
diff --git a/src-modules/module/sxc/schluesseltabellen/sichten_fuellen.sql b/src-modules/module/sxc/schluesseltabellen/sichten_fuellen.sql
index d0fd4df..e8e523b 100644
--- a/src-modules/module/sxc/schluesseltabellen/sichten_fuellen.sql
+++ b/src-modules/module/sxc/schluesseltabellen/sichten_fuellen.sql
@@ -17,7 +17,7 @@ select setval('sichten_tid_seq',(select max(tid) from sichten));
"name":"NRW-Hochschulen Liste",
"quelle":"<> select (case when struktur_str=''Hochschule''
then trim(kurztext) || '' - '' || trim(druck) else kurztext end) as name ,
- apnr, parent, ebene from sxc_hochschulen_nrw_liste
+ apnr, parent, ebene from sxc_hochschulen_liste
where struktur_str != ''Hochschule''
or apnr in (select hs_nr from sxc_hochschulen HB where HB.hsk_bundesland::text = ''Nordrhein-Westfalen''::text) order by 1",
"art":"SXC_Hochschulen-Sicht",
diff --git a/src-modules/module/sxc/schluesseltabellen/sx_captions_fuellen.sql b/src-modules/module/sxc/schluesseltabellen/sx_captions_fuellen.sql
new file mode 100644
index 0000000..8be586c
--- /dev/null
+++ b/src-modules/module/sxc/schluesseltabellen/sx_captions_fuellen.sql
@@ -0,0 +1,121 @@
+--freemarker template
+<#if SQLdialect='Postgres'>
+select setval('sx_captions_tid_seq',(select max(tid) from sx_captions));
+#if>
+<#assign sachgebiete_id="360" />
+<#assign table_name="" />
+<#assign locale="de" />
+<#assign sx_captions = [
+{"id":"destatis_21311",
+ "contents_short":"Statistik der Studierenden (21311)",
+ "contents_long":"Destatis: Statistik der Studierenden (21311)",
+ "doku_link":"",
+ "export_to_glossar":"0"} ,
+{"id":"it_nrw.hs_stat",
+ "contents_short":"IT-NRW Hochschulstatistik",
+ "contents_long":"IT-NRW Hochschulstatistik",
+ "doku_link":"",
+ "export_to_glossar":"0"}
+ ] />
+
+ --Ab hier braucht man nichts ändern:
+CREATE TEMP TABLE tmp_sx_captions
+(
+ id char(200),
+ table_name char(200),
+ field_name char(200),
+ record_no integer,
+ locale char(10),
+ contents_short char(255),
+ contents_long text,
+ equalitystatus smallint,
+ sachgebiete_id integer,
+ doku_link varchar(255),
+ export_to_glossar integer
+);
+<#foreach caption in sx_captions>
+delete from tmp_sx_captions;
+
+insert into tmp_sx_captions
+(
+ id,
+ table_name,
+ field_name,
+ record_no,
+ locale,
+ contents_short,
+ contents_long,
+ equalitystatus,
+ doku_link,
+ export_to_glossar,
+ sachgebiete_id
+
+)
+select
+<#if caption.id?exists>
+'${caption.id}',
+<#else>
+null::varchar(255),
+#if>
+<#if caption.table_name?exists>
+'${caption.table_name}',
+<#else>
+null::varchar(255),
+#if>
+<#if caption.field_name?exists>
+'${caption.field_name}',
+<#else>
+null::varchar(255),
+#if>
+null,
+'${locale}',
+'${caption.contents_short}',
+'${caption.contents_long}',
+null,
+<#if caption.doku_link?exists>
+'${caption.doku_link}',
+<#else>
+null::varchar(255),
+#if>
+${caption.export_to_glossar},
+${sachgebiete_id}
+from xdummy;
+
+<#if caption.table_name?exists>
+delete from sx_captions where table_name = '${caption.table_name}' and field_name = '${caption.field_name}';
+<#else>
+delete from sx_captions where id = '${caption.id}' ;
+#if>
+insert into sx_captions
+(
+ id,
+ table_name,
+ field_name,
+ record_no,
+ locale,
+ contents_short,
+ contents_long,
+ equalitystatus,
+ doku_link,
+ export_to_glossar,
+ sachgebiete_id
+)
+select
+ id,
+ table_name,
+ field_name,
+ record_no,
+ locale,
+ contents_short,
+ contents_long,
+ equalitystatus,
+ doku_link,
+ export_to_glossar::integer,
+ sachgebiete_id
+from tmp_sx_captions;
+
+#foreach>
+
+drop table tmp_sx_captions;
+
+
diff --git a/src-modules/module/sxc/sxc_update.x b/src-modules/module/sxc/sxc_update.x
new file mode 100644
index 0000000..bb58965
--- /dev/null
+++ b/src-modules/module/sxc/sxc_update.x
@@ -0,0 +1,65 @@
+#!/bin/bash
+
+#Arbeitsverzeichnis fuer crontab
+PFAD=$2
+if [ "$PFAD" != "" ]
+then
+
+cd $PFAD
+
+fi
+#Umgebung einlesen:
+if [ "$SXC_PFAD" = "" ]
+then
+echo "ACHTUNG: Die Umgebungsvariable SXC_PFAD ist nicht gesetzt. Bitte prüfen Sie $SUPERX_DIR/db/bin/SQL_ENV"
+
+exit 1
+
+fi
+if [ "$SXC_ERRORMAIL" != "" ]
+then
+ERRORMAIL=$SXC_ERRORMAIL
+export ERRORMAIL
+fi
+if [ "$SXC_LOGMAIL" != "" ]
+then
+LOGMAIL=$SXC_LOGMAIL
+export LOGMAIL
+fi
+if [ "$SXC_BACKUP" != "" ]
+then
+MODULE_BACKUP=$SXC_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 "sxc-Update startet" >$SXC_ERRORDAT
+#Tagesdatum für Systeminfo
+date +'%d.%m.%Y' > $SXC_LOAD_PFAD/superx.datum
+
+runAndCheck.x $SXC_PFAD "module_etl.x sxc $SXC_PFAD $SXC_LOAD_PFAD" EXIT_ON_ERROR SEND_ERRORMAIL SEND_LOGMAIL "SXC update$MANDANTID"
+cat $SXC_PFAD/L_SXC_update$MANDANTID.log >>$SXC_ERRORDAT
+
+
+fgrep -s "not found" $SXC_ERRORDAT
+FLAG1=$?
+fgrep -i -s "error" $SXC_ERRORDAT
+FLAG2=$?
+fgrep -i -s "nicht gefunden" $SXC_ERRORDAT
+FLAG3=$?
+if [ $FLAG1 -eq 0 -o $FLAG2 -eq 0 -o $FLAG3 -eq 0 ]
+then
+ echo "Fehler beim SXC-Update "
+ echo "---------------------------------------"
+ echo "Fehlerprotokoll in $SXC_ERRORDAT"
+ echo "---------------------------------------"
+ cp $SXC_LOAD_PFAD/superx.datum.alt $SXC_LOAD_PFAD/superx.datum
+else
+ echo "SXC-Update erfolgreich"
+fi
+
+echo "---------------------------Beginn Prüfroutine-----------------------------------" >>$SXC_ERRORDAT
+#cat $SXC_PFAD/L_sxc_Test$MANDANTID.log >>$SXC_ERRORDAT
+pruefmail.x $SXC_PFAD/L_sxc_Test$MANDANTID.log $ERRORMAIL
+